private void AddTo(string[] fields, IParable target, ParaList to) { foreach (string field in fields) { FieldPair fp = FieldPair.Parse(field)[0]; ParaList tp = target.GetParameters(); if (tp.HasPara(fp.GetFrom())) { IPara para = tp.Get(fp.GetFrom()); if (para != null) { IPara clone = (IPara)para.Copy(); clone.SetName(fp.GetTo()); if (@override || !to.HasPara(fp.GetTo())) { to.AddPara(clone); } else { to.AddPara(clone); } } } } }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null && sort is ParaListSet) { ParaListSet pls = (ParaListSet)sort; IParable pa = Get(); if (action != null) { args.TempUse(TEMP_SORT, pa); args.TempUse("element", pa); action.Act(args); args.Resume("element"); args.Resume(TEMP_SORT); } pls.AddParaList(pa.GetParameters()); } } }
public override void DoAction(IEventArgs args) { if (string.IsNullOrEmpty(player)) { player = "current"; } FreeRuleEventArgs fr = (FreeRuleEventArgs)args; PlayerEntity playerEntity = (PlayerEntity)fr.GetEntity(player); IParable item = args.GetUnit("item"); if (playerEntity != null && item != null) { SimpleProto message = FreePool.Allocate(); message.Key = FreeMessageConstant.ChangeAvatar; int itemId = FreeUtil.ReplaceInt("{item.itemId}", args); if (takeoff) { TakeOff(playerEntity, itemId); } else { PutOn(playerEntity, itemId); } ReduceDamageUtil.UpdateArmorAndHelmet((FreeData)playerEntity.freeData.FreeData); } }
public override void DoAction(IEventArgs args) { IParable p = null; if (StringUtil.IsNullOrEmpty(key)) { p = args.GetDefault(); } else { p = args.GetUnit(key); } if (p != null && paras != null) { foreach (ParaValue para in paras) { if (null == para) { throw new GameConfigExpception("para is not a null field at " + key); } if (!p.GetParameters().HasPara(para.GetName()) || @override) { p.GetParameters().AddPara(para.GetPara(args)); } } } if (paras == null || paras.Count == 0) { _logger.Info("AddParaValueAction paras is null or count is 0 !"); } }
public override void DoAction(IEventArgs args) { string from = FreeUtil.ReplaceVar(ParaFrom, args); string to = FreeUtil.ReplaceVar(ParaTo, args); string itemCat = FreeUtil.ReplaceVar(ParaItemCat, args); int clipType = FreeUtil.ReplaceInt(ParaClipType, args); IParable item = args.GetUnit(FreeArgConstant.Item); if (to == ChickenConstant.BagDefault && itemCat == ChickenConstant.ItemCatGrenadeWeapon) { HandleAddGrenade(args); } if (from == ChickenConstant.BagDefault && itemCat == ChickenConstant.ItemCatGrenadeWeapon) { HandleRemoveGrenade(args); } if (to == ChickenConstant.BagDefault && item.GetParameters().HasPara(ClipType)) { HandleSetClip(args, clipType); } else if (from == ChickenConstant.BagDefault && item.GetParameters().HasPara(ClipType)) { HandleClearClip(args, clipType); } HandleCapacity(args); }
public virtual IPara GetTargetPara(IEventArgs args, IPara source) { IPara replace = ExpSetParser.GetReplaceValue(unitPara.GetPara(), args); if (replace != null) { return(replace); } IParable p1 = args.GetUnit(unitPara.GetUnit()); if (p1 != null) { IPara p = unitPara.GetPara(args); if (p == null) { p = source.Initial(op, unitPara.GetPara()); } return(p); } else { if (!StringUtil.IsNullOrEmpty(unitPara.GetUnit())) { return(source.Initial(op, unitPara.GetUnit() + "." + unitPara.GetPara())); } else { return(source.Initial(op, unitPara.GetPara())); } } }
public override void DoAction(IEventArgs args) { IParable p = null; if (StringUtil.IsNullOrEmpty(key)) { p = args.GetDefault(); } else { p = args.GetUnit(key); } if (p != null && paras != null) { foreach (IPara para in paras) { if (!p.GetParameters().HasPara(para) || @override) { IPara clone = (IPara)para.Copy(); clone.SetName(FreeUtil.ReplaceVar(clone.GetName(), args)); p.GetParameters().AddPara(clone); } } } }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null) { ParaListSet pls = (ParaListSet)sort; if (action != null) { ParaListSet temp = pls.Sort(FreeUtil.ReplaceVar(exp, args)); temp.SetName(pls.GetName()); unit.GetParameters().TempUse(temp); action.Act(args); unit.GetParameters().Resume(temp.GetName()); } if (!keep) { pls.ReOrder(); } } } }
public override void DoAction(IEventArgs args) { if (string.IsNullOrEmpty(player)) { player = "current"; } FreeRuleEventArgs fr = (FreeRuleEventArgs)args; PlayerEntity playerEntity = (PlayerEntity)fr.GetEntity(player); IParable item = args.GetUnit("item"); if (playerEntity != null && item != null) { } /*SimpleProto message = FreePool.Allocate(); * message.Key = FreeMessageConstant.ChangeAvatar; * * int itemId = FreeUtil.ReplaceInt("{item.itemId}", args); * * playerEntity.WeaponController().PickUpWeapon(WeaponUtil.CreateScan(itemId)); * //playerEntity.bag.Bag.SetWeaponBullet(30); * //playerEntity.bag.Bag.SetReservedCount(100); * * message.Ins.Add(itemId); * * message.Ks.Add(2); * * playerEntity.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message);*/ }
public bool RemovePara(string key, out IParable parable) { parable = null; switch (key) { case DEFAULT: defaultStack.Clear(); parable = defaultParas; defaultParas = null; return(true); case buf: bufStack.Clear(); parable = bufParas; bufParas = null; return(true); case creator: creatorStack.Clear(); parable = creatorParas; creatorParas = null; return(true); } return(false); }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IGameUnit player = GetPlayer(args); if (player != null) { IParable pa = fr.GetUnit(item); if (pa is ItemPosition) { ItemPosition ip = (ItemPosition)pa; FreeData fd = (FreeData)player; ItemInventory toInv = fd.freeInventory.GetInventoryManager().GetInventory(FreeUtil.ReplaceVar(toInventory, args)); if (toInv != null) { int toX = 0; int toY = 0; if (string.IsNullOrEmpty(x) && string.IsNullOrEmpty(y)) { int[] next = toInv.GetNextEmptyPosition(ip.GetKey()); toX = next[0]; toY = next[1]; } else { toX = FreeUtil.ReplaceInt(x, args); toY = FreeUtil.ReplaceInt(y, args); } ItemInventoryUtil.MovePosition(ip, toInv, toX, toY, fr); } } } }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null) { ParaListSet pls = (ParaListSet)sort; IList <ParaList> removes = new List <ParaList>(); foreach (ParaList pl in pls) { if (StringUtil.IsNullOrEmpty(exp) || pl.Meet(exp)) { removes.Add(pl); } } foreach (ParaList pl_1 in removes) { pls.RemoveParaList(pl_1); } } } }
public void SendMessage(IEventArgs args, SimpleProto message, int scope, string player) { //PlayerEntity[] players = args.GameContext.player.GetInitializedPlayerEntities(); PlayerEntity[] players = args.GameContext.player.GetEntities(); if (scope == 4) { foreach (PlayerEntity p in players) { if (p.hasNetwork) { p.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } } } else if (scope == 1) { IParable unit = args.GetUnit(FreeUtil.ReplaceVar(player, args)); if (unit != null) { PlayerEntity p = ((FreeData)unit).Player; if (p.hasNetwork) { p.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } } } }
public override void DoAction(IEventArgs args) { IParable parable = args.GetUnit(FreeUtil.ReplaceVar(var, args)); if (parable != null) { args.SetPara(FreeUtil.ReplaceVar(name, args), parable); } }
public virtual void TempUse(string key, IParable paras) { if (!temp.ContainsKey(key)) { temp[key] = new Stack <IParable>(); } temp[key].Push(GetUnit(key)); this.map[key] = paras; }
public static void SendMessage(IEventArgs args, string player, SimpleProto message) { IParable unit = args.GetUnit(FreeUtil.ReplaceVar(player, args)); if (unit != null) { PlayerEntity p = ((FreeData)unit).Player; p.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } }
public virtual void Resume(string key) { if (useArgs.Resume(key)) { return; } IParable old = temp[key].Pop(); this.map[key] = old; }
public PlayerEntity GetPlayer(string player) { IParable unit = GetUnit(FreeUtil.ReplaceVar(player, this)); if (unit is FreeData) { return(((FreeData)unit).Player); } return(null); }
private static IPara GetPara(IEventArgs args, ParaExp pe) { if (pe.GetUnit().Equals("robot")) { foreach (string key in args.GetUnitKeys()) { if (key.Equals("robot")) { IParable parable = args.GetUnit(key); if (parable != null && parable.GetType().Name.Equals("FreeData")) { IPara para = parable.GetParameters().Get(pe.GetPara()); if (para != null) { return(para); } } } } } else { if (pe.GetUnit().Equals("player")) { foreach (string key in args.GetUnitKeys()) { if (!key.Equals("robot")) { IParable parable = args.GetUnit(key); if (parable != null && parable.GetType().Name.Equals("FreeData")) { IPara para = parable.GetParameters().Get(pe.GetPara()); if (para != null) { return(para); } } } } } else { IParable parable = args.GetUnit(pe.GetUnit()); if (parable != null) { return(pe.GetSourcePara(args)); } } } return(null); }
public virtual IParable RemovePara(string key) { IParable para = this.map[key]; this.map.Remove(key); this.directMap.Remove(key); if (temp.ContainsKey(key)) { this.temp.Remove(key); } return(para); }
public override void DoAction(IEventArgs args) { FreeRuleEventArgs fr = (FreeRuleEventArgs)args; IParable pe = args.GetUnit(item); if (pe != null && pe is FreeItem) { FreeItem fi = (FreeItem)pe; if (!StringUtil.IsNullOrEmpty(time)) { ((FreeGameItem)fi).SetTime(time); } fi.Drop(fr, pos.Select(args)); } }
public override void DoAction(IEventArgs args) { if (string.IsNullOrEmpty(player)) { player = "current"; } FreeRuleEventArgs fr = (FreeRuleEventArgs)args; PlayerEntity playerEntity = (PlayerEntity)fr.GetEntity(player); IParable item = args.GetUnit("item"); if (playerEntity != null && item != null) { EWeaponSlotType type = FreeWeaponUtil.GetSlotType(FreeUtil.ReplaceInt(weaponKey, args)); SimpleProto message = FreePool.Allocate(); message.Key = FreeMessageConstant.ChangeAvatar; int itemId = FreeUtil.ReplaceInt("{item.itemId}", args); if (!delete) { playerEntity.WeaponController().SetWeaponPart(type, itemId); message.Ins.Add((int)type); message.Ins.Add(itemId); message.Ks.Add(3); FreeMessageSender.SendMessage(playerEntity, message); //playerEntity.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } else { var part = SingletonManager.Get <WeaponPartsConfigManager>().GetPartType(SingletonManager.Get <WeaponPartSurvivalConfigManager>().GetDefaultPartBySetId(itemId)); playerEntity.WeaponController().DeleteWeaponPart(type, part); message.Ins.Add((int)type); message.Ins.Add((int)part); message.Ks.Add(4); FreeMessageSender.SendMessage(playerEntity, message); //playerEntity.network.NetworkChannel.SendReliable((int)EServer2ClientMessage.FreeData, message); } } }
public override void DoAction(IEventArgs args) { if (StringUtil.IsNullOrEmpty(key)) { key = BaseEventArgs.DEFAULT; } IParable unit = args.GetUnit(key); if (unit != null) { IPara sort = unit.GetParameters().Get(sorter); if (sort != null) { ParaListSet pls = (ParaListSet)sort; if (action != null) { Iterator <ParaList> it = pls.Iterator(); int i = 1; while (it.HasNext()) { ParaList pl = it.Next(); args.TempUse("element", new SimpleParable(pl)); args.GetDefault().GetParameters().TempUse(new IntPara("index", i++)); if (condition == null || condition.Meet(args)) { if (action != null) { action.Act(args); } if (FreeUtil.ReplaceBool(remove, args)) { it.Remove(); } } args.GetDefault().GetParameters().Resume("index"); args.Resume("element"); } if (i == 1) { if (noneAction != null) { noneAction.Act(args); } } } } } }
private void SetArg(IEventArgs fr, long s) { foreach (string key in map[s].Keys) { IParable pa = map[s][key]; ParaList snapshotParaList = vMap[s][key]; if (pa != null && snapshotParaList != null) { foreach (string field in snapshotParaList.GetFields()) { pa.GetParameters().TempUse(snapshotParaList.Get(field)); } } fr.TempUse(key, pa); } }
private void ResumeArg(IEventArgs fr, long s) { foreach (string key in map[s].Keys) { fr.Resume(key); IParable pa = map[s][key]; ParaList snapshotParaList = vMap[s][key]; if (pa != null && snapshotParaList != null) { foreach (string field in snapshotParaList.GetFields()) { pa.GetParameters().Resume(field); } } } }
public bool TempUse(string key, IParable paras) { switch (key) { case buf: bufStack.Push(baseEventArgs.GetUnit(key)); bufParas = paras; return(true); case creator: creatorStack.Push(baseEventArgs.GetUnit(key)); creatorParas = paras; return(true); } return(false); }
public virtual void TempUse(string key, IParable paras) { if (useArgs.TempUse(key, paras)) { return; } Stack <IParable> v = null; if (!temp.TryGetValue(key, out v)) { temp[key] = new Stack <IParable>(); } temp[key].Push(GetUnit(key)); this.map[key] = paras; }
public override void DoAction(IEventArgs args) { IParable pa = args.GetUnit(key); IParable other = args.GetUnit(from); if (pa != null && other != null) { if (StringUtil.IsNullOrEmpty(fields)) { AddTo(other.GetParameters().GetFields(), other, pa.GetParameters()); } else { AddTo(StringUtil.Split(fields, ","), other, pa.GetParameters()); } } }
public bool Resume(string key) { IParable old = null; switch (key) { case buf: old = bufStack.Pop(); bufParas = old; return(true); case creator: old = creatorStack.Pop(); creatorParas = old; return(true); } return(false); }
public virtual IParable GetUnit(string key) { IParable v = null; if (useArgs.GetUnit(key, out v)) { return(v); } if (/*directMap.Count > 0 && */ directMap.TryGetValue(key, out v)) { return(v); } else { return(map[key]); } }