public void Execute(GameState state, ConfigRoot config, ICommandBuffer buffer) { state.Level.MovedUnits.Add(DealerId); var damage = DamageLogic.GetDamage(state, config, DealerId, TargetId); var target = state.Level.FindUnitById(TargetId); target.Health -= damage; if (target.Health <= 0) { buffer.Add(new KillUnitCommand(target.Id)); } }
public static ICombatOperation createOperation(BattleEntity src, BattleEntity dest, CombatRound combatRound) { CombatResolver srcRes = CombatResolverFactory.CreateSource(src, combatRound); CombatResolver destRes = CombatResolverFactory.CreateDestination(dest); HitChanceLogic hitChanceLogic = new HitChanceLogic (); DamageLogic damageLogic = new DamageLogic (); CombatOperation.Builder builder = new CombatOperation.Builder (); builder.AddLogic(damageLogic) .Require(delegate(ICombatLogic [] conditions) { HitChanceLogic hitChance = (HitChanceLogic) conditions[0]; return hitChance.Hits; }, hitChanceLogic); AddHitChanceStatusEffectRules(builder, hitChanceLogic, combatRound); return builder.Build(srcRes, destRes); }
public int GetAbsorb(ulong unitId) { return(DamageLogic.GetAbsorb(State, Config, unitId)); }
public int GetWeaponDamage(ulong unitId) { return(DamageLogic.GetWeaponDamage(State, Config, unitId)); }