Ejemplo n.º 1
0
        public override void Run(Combat.Character character)
        {
            Int32 time = EvaluationHelper.AsInt32(character, Time, 1);
            Int32 target_id = EvaluationHelper.AsInt32(character, TargetId, Int32.MinValue);
            Vector2 offset = EvaluationHelper.AsVector2(character, Position, new Vector2(0, 0));

            foreach (Combat.Character target in character.GetTargets(target_id))
            {
                switch (BindPosition)
                {
                    case BindToTargetPostion.Mid:
                        offset += target.BasePlayer.Constants.Midposition;
                        break;

                    case BindToTargetPostion.Head:
                        offset += target.BasePlayer.Constants.Headposition;
                        break;

                    case BindToTargetPostion.None:
                    case BindToTargetPostion.Foot:
                    default:
                        break;
                }

                character.Bind.Set(target, offset, time, 0, false);
                break;
            }
        }
Ejemplo n.º 2
0
        public override void Run(Combat.Character character)
        {
            Int32 time = EvaluationHelper.AsInt32(character, Time, 1);
            Int32 target_id = EvaluationHelper.AsInt32(character, TargetId, Int32.MinValue);
            Vector2 position = EvaluationHelper.AsVector2(character, Position, new Vector2(0, 0));

            foreach (Combat.Character target in character.GetTargets(target_id))
            {
                target.Bind.Set(character, position, time, 0, true);
            }
        }
Ejemplo n.º 3
0
        public override void Run(Combat.Character character)
        {
            Int32? amount = EvaluationHelper.AsInt32(character, Amount, null);
            Int32 target_id = EvaluationHelper.AsInt32(character, TargetId, Int32.MinValue);

            if (amount == null) return;

            foreach (Combat.Character target in character.GetTargets(target_id))
            {
                target.BasePlayer.Power += amount.Value;
            }
        }
Ejemplo n.º 4
0
        public override void Run(Combat.Character character)
        {
            Int32? statenumber = EvaluationHelper.AsInt32(character, StateNumber, null);
            Int32 target_id = EvaluationHelper.AsInt32(character, TargetId, Int32.MinValue);

            if (statenumber == null) return;

            foreach (Combat.Character target in character.GetTargets(target_id))
            {
                target.StateManager.ForeignManager = character.StateManager;
                target.StateManager.ChangeState(statenumber.Value);
            }
        }
Ejemplo n.º 5
0
        public override void Run(Combat.Character character)
        {
            Single? x = EvaluationHelper.AsSingle(character, X, null);
            Single? y = EvaluationHelper.AsSingle(character, Y, null);
            Int32 target_id = EvaluationHelper.AsInt32(character, TargetId, Int32.MinValue);

            foreach (Combat.Character target in character.GetTargets(target_id))
            {
                Vector2 velocity = new Vector2(0, 0);

                if (x != null) velocity.X = x.Value;
                if (y != null) velocity.Y = y.Value;

                target.CurrentVelocity += velocity;
            }
        }
Ejemplo n.º 6
0
        public override void Run(Combat.Character character)
        {
            Int32 facing = EvaluationHelper.AsInt32(character, Facing, 0);
            Int32 target_id = EvaluationHelper.AsInt32(character, TargetId, Int32.MinValue);

            foreach (Combat.Character target in character.GetTargets(target_id))
            {
                if (facing > 0)
                {
                    target.CurrentFacing = character.CurrentFacing;
                }
                else if (facing < 0)
                {
                    target.CurrentFacing = Misc.FlipFacing(character.CurrentFacing);
                }
            }
        }
Ejemplo n.º 7
0
        public override void Run(Combat.Character character)
        {
            Int32? amount = EvaluationHelper.AsInt32(character, Amount, null);
            Int32 target_id = EvaluationHelper.AsInt32(character, TargetId, Int32.MinValue);
            Boolean cankill = EvaluationHelper.AsBoolean(character, CanKill, true);
            Boolean absolute = EvaluationHelper.AsBoolean(character, Absolute, false);

            if (amount == null) return;

            foreach (Combat.Character target in character.GetTargets(target_id))
            {
                Int32 newamount = amount.Value;

                if (absolute == false && newamount < 0)
                {
                    newamount = (Int32)(newamount * character.OffensiveInfo.AttackMultiplier);
                    newamount = (Int32)(newamount / target.DefensiveInfo.DefenseMultiplier);
                }

                target.Life += newamount;
                if (target.Life == 0 && cankill == false) target.Life = 1;
            }
        }
Ejemplo n.º 8
0
        public override void Run(Combat.Character character)
        {
            Int32 exclude_id = EvaluationHelper.AsInt32(character, Id, -1);
            Boolean keepone = EvaluationHelper.AsBoolean(character, KeepOne, true);

            List<Combat.Character> removelist = new List<Combat.Character>();
            foreach (Combat.Character target in character.GetTargets(Int32.MinValue))
            {
                if (exclude_id != -1 && target.DefensiveInfo.HitDef.TargetId == exclude_id) continue;

                removelist.Add(target);
            }

            if (removelist.Count > 0 && keepone == true) removelist.RemoveAt(0);

            foreach (Combat.Character target in removelist) character.OffensiveInfo.TargetList.Remove(target);

            /*
            Boolean keptone = false;
            foreach (Combat.Entity entity in character.Engine.Entities)
            {
                Combat.Character target = character.FilterEntityAsTarget(entity, Int32.MinValue);
                if (target == null) continue;

                if (exclude_id != -1 && target.DefensiveInfo.HitDef.TargetId == exclude_id) continue;

                if (keptone == false)
                {
                    keptone = true;
                    continue;
                }

                character.OffensiveInfo.TargetList.Remove(target);
            }
            */
        }