public override void DoAction(IEventArgs args) { foreach (FreeMoveEntity free in args.GameContext.freeMove.GetEntities()) { if (free.hasFreeData && free.freeData.FreeData != null) { FreeEntityData data = (FreeEntityData)free.freeData.FreeData; if (data.GetKey() == entity) { PlayerEntity p = GetPlayerEntity(args); if (p != null) { if (remove) { data.follows.Remove(p); } else { data.follows.Add(p); } } } } } }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; object obj = fr.GetEntity(FreeUtil.ReplaceVar(entity, args)); if (obj is FreeMoveEntity) { FreeEntityData data = (FreeEntityData)((FreeMoveEntity)obj).freeData.FreeData; data.SetMove(args, move); } }
public bool Meet(IEventArgs args) { FreeEntityData entity = ChickenRuleVars.GetDropPlane(args); if (entity != null) { int x = ChickenRuleVars.GetFogStopX(args); int y = ChickenRuleVars.GetFogStopY(args); int r = ChickenRuleVars.GetFogStopRadius(args); float flyX = entity.FreeMoveEntity.position.Value.x; float flyY = entity.FreeMoveEntity.position.Value.z; if ((x - flyX) * (x - flyX) + (y - flyY) * (y - flyY) <= r * r) { return(true); } } return(false); }
private static string ToTrigger() { if (trigger is GameTrigger) { GameTrigger gt = (GameTrigger)trigger; return(string.Format("触发器:{0} 触发类型:{1} 分类:{2} 规则:{3}", gt.GetName(), gt.GetKey(), gt.GetGroup(), gt.GetRule())); } else if (trigger is string) { return((string)trigger); } else if (trigger is FreeEntityData) { FreeEntityData move = (FreeEntityData)trigger; return(string.Format("FreeMove:{0}", move.name)); } else if (trigger is ISkill) { ISkill skill = (ISkill)trigger; string key = skill.GetKey() != null?skill.GetKey() : string.Empty; if (skill is AbstractCoolDownSkill) { PlayerActionSkill cooldown = (PlayerActionSkill)skill; string skillTrigger = cooldown.trigger != null?cooldown.trigger.ToString() : string.Empty; return(string.Format("动作技能:{0}, 触发:{1}", cooldown.GetKey(), skillTrigger)); } else { return(string.Format("技能:{0}", skill.GetKey())); } } else if (trigger is FreeBuf) { FreeBuf buf = (FreeBuf)trigger; return(string.Format("Buf:{0}", buf.GetKey())); } return(string.Empty); }