/// <summary> /// 技能行为发生时的动作 /// </summary> public override void SkillAction() { foreach (Unit u in GameWorld.GameItemManager.units) { if (u.Dead == false && u.Group != MargedUnit.Group) { GameWorld.AddNewMissile(new Missile(GameWorld, MargedUnit, u, GameWorld.Content.Load <MissileType>(MissileTypeAssetName), MargedUnit.SkillPosition(SkillPointNum))); } } }
public void Shot(GameTime gameTime, Unit unit, Unit target) { if (Num > 0 && cooldownRemaining <= 0) { shotPositionNum += 1; shotPositionNum %= position.Length; gameWorld.AddNewMissile(new Missile(gameWorld, unit, target, missileType, unit.GetTransformedWeaponPosition(position[shotPositionNum]))); if (unit.EndlessBullets == false) { Num -= 1; } CooldownRemaining = missileWeaponType.cooldown; } }
/// <summary> /// 技能行为发生时的动作 /// </summary> public override void SkillAction() { if (MargedUnit.CurrentMissileWeapon != null) { for (int i = 0; i < 3; i++) { if (MargedUnit.CurrentMissileWeapon.Num > 0) { GameWorld.AddNewMissile(new Missile(GameWorld, MargedUnit, Target, MargedUnit.CurrentMissileWeapon.missileType, MargedUnit.SkillPosition(i % 3))); if (!MargedUnit.EndlessBullets) { MargedUnit.CurrentMissileWeapon.Num -= 1; } } } } }
/// <summary> /// 技能行为发生时的动作 /// </summary> public override void SkillAction() { GameWorld.AddNewMissile(new Missile(GameWorld, MargedUnit, Target, GameWorld.Content.Load <MissileType>(MissileTypeAssetName), MargedUnit.SkillPosition(SkillPointNum))); }