public virtual void CreateAction(FightObject[] targetTeam, int fightCount) { if (m_action == null || m_action.FightCount != fightCount) { FightAction action = new FightAction(ActionType.WuLi, ID, fightCount); action.Target = targetTeam[Sinan.Extensions.NumberRandom.Next(targetTeam.Length)].ID; this.m_action = action; } }
private void CreateAction(FightObject[] targetTeam, Variant v, int fightCount) { int actionType = v.GetIntOrDefault("ActionType"); FightAction action = new FightAction((ActionType)actionType, this.ID, 0); action.Parameter = v.GetStringOrDefault("Parameter"); action.SkillLev = v.GetIntOrDefault("Level", 1); //Target 1 自己 //Target 2 队友n //Target 3 敌人n //Target 4 随机友方(n) //Target 5 随机敌人(n) //Target 6 血量最少的敌人(n) int actionTarget = v.GetIntOrDefault("ActionTarget"); if (actionTarget <= 1) { action.Target = this.ID; } else if (actionTarget == 4 || actionTarget == 2) { int index = Sinan.Extensions.NumberRandom.Next(Team.Length); action.Target = Team[index].ID; } else if (actionTarget == 5 || actionTarget == 3) { int index = Sinan.Extensions.NumberRandom.Next(targetTeam.Length); action.Target = targetTeam[index].ID; } else if (actionTarget == 6) { int min = Int32.MaxValue; foreach (var target in targetTeam) { if (target.HP > 0 && target.HP < min) { action.Target = target.ID; } } } else { action.Target = string.Empty; } action.Say = NewTalk(v.GetVariantOrDefault("Talk")); action.FightCount = fightCount; this.m_action = action; }
public FightAction CopyNew() { FightAction action = new FightAction(this.ActionType, this.Sender, this.FightCount); action.Parameter = this.Parameter; action.SkillLev = this.SkillLev; action.Target = this.Target; return action; }