Skip to content

Commit f480dd8

Browse files
feat skill DynamicDamage
1 parent 35545ee commit f480dd8

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/Economics.Skill/Model/Options/BaseProjtileOption.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ public class BaseProjtileOption
3535
[JsonProperty("持续时间")]
3636
public int TimeLeft { get; set; } = -1;
3737

38+
[JsonProperty("动态伤害")]
39+
public bool DynamicDamage { get; set; }
40+
3841
[JsonProperty("AI")]
3942
public float[] AI { get; set; } = new float[3];
4043

src/Economics.Skill/Utils.cs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ public static void EmitGeneralSkill(TSPlayer Player, SkillContext skill)
5656
}
5757

5858

59-
internal static void CycleAdapr(TSPlayer ply, Vector2 vel, Vector2 pos, ProjectileOption option, NPC? lockNpc = null)
59+
internal static void CycleAdapr(TSPlayer ply, Vector2 vel, Vector2 pos, ProjectileOption option, float Damage, NPC? lockNpc = null)
6060
{
61+
var damage = option.DynamicDamage ? Damage / ply.SelectedItem.damage * option.Damage : Damage;
6162
foreach (var opt in option.ProjectileCycle.ProjectileCycles)
6263
{
6364
var _vel = vel;
@@ -100,7 +101,7 @@ internal static void CycleAdapr(TSPlayer ply, Vector2 vel, Vector2 pos, Projecti
100101
_pos,
101102
_vel * (opt.Reverse ? -1 : 1),
102103
option.ID,
103-
option.Damage,
104+
Convert.ToInt32(Damage),
104105
option.Knockback,
105106
ply.Index,
106107
option.AI[0],
@@ -141,7 +142,7 @@ internal static void CycleAdapr(TSPlayer ply, Vector2 vel, Vector2 pos, Projecti
141142
/// <param name="skill"></param>
142143
/// <param name="vel"></param>
143144
/// <param name="pos"></param>
144-
public static void SpawnSkillProjectile(TSPlayer Player, SkillContext skill, Vector2 vel, Vector2 pos)
145+
public static void SpawnSkillProjectile(TSPlayer Player, SkillContext skill, Vector2 vel, Vector2 pos, int Damage)
145146
{
146147
EmitGeneralSkill(Player, skill);
147148
foreach (var i in Enumerable.Range(0, skill.Projectiles.Count))
@@ -166,7 +167,7 @@ public static void SpawnSkillProjectile(TSPlayer Player, SkillContext skill, Vec
166167
}
167168
}
168169
}
169-
CycleAdapr(Player, vel, pos, proj, lockNpc);
170+
CycleAdapr(Player, vel, pos, proj, Damage, lockNpc);
170171
}).AddMilliSeconds(proj.Dealy * i);
171172
}
172173
}
@@ -181,7 +182,7 @@ public static void EmitSkill(TSPlayer Player, SkillContext skill)
181182
var pos = Player.TPlayer.Center + Player.TPlayer.ItemOffSet();
182183
//原始角度速度参数
183184
var vel = Player.TPlayer.ItemOffSet();
184-
SpawnSkillProjectile(Player, skill, vel, pos);
185+
SpawnSkillProjectile(Player, skill, vel, pos, Player.SelectedItem.damage);
185186
Interpreter.ExecuteScript(skill, Player, pos, vel);
186187
}
187188

@@ -191,7 +192,7 @@ public static void EmitSkill(GetDataHandlers.NewProjectileEventArgs e, SkillCont
191192
var pos = e.Position;
192193
//原始角度速度参数
193194
var vel = e.Velocity;
194-
SpawnSkillProjectile(e.Player, skill, vel, pos);
195+
SpawnSkillProjectile(e.Player, skill, vel, pos, e.Damage);
195196
Interpreter.ExecuteScript(skill, e.Player, pos, vel);
196197
}
197198
}

0 commit comments

Comments
 (0)