Beispiel #1
0
        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);
    }
Beispiel #3
0
 public int GetAbsorb(ulong unitId)
 {
     return(DamageLogic.GetAbsorb(State, Config, unitId));
 }
Beispiel #4
0
 public int GetWeaponDamage(ulong unitId)
 {
     return(DamageLogic.GetWeaponDamage(State, Config, unitId));
 }