public override void processMessage(NetWorker.Utilities.RawMessage message) { Minion minion = Engine.Game.getMinionById(message.getInt("iid")); MinionEffect effect = (MinionEffect)Activator.CreateInstance(TypeIdGenerator.getMinionEffectClass(message.getInt("tid"))); if (minion != null) { minion.effects.AddLast(effect); Runner.Graphics.addMinionEffect(minion, effect); } }
public bool addEffect(MinionEffect mEffect) { if (!mEffect.isStackable()) { LinkedListNode <MinionEffect> effectNode = effects.First; while (effectNode != null) { if (effectNode.Value.GetType() == mEffect.GetType()) { return(false); } effectNode = effectNode.Next; } } this.effects.AddFirst(mEffect); return(true); }
public override void step() { if (chase()) { foreach (var damage in damageList) { targetMinion.dealDamage(damage, ownerTower.board.player); } MinionEffect contagiousEffect = getMinionEffect(ownerTower.board.player); if (targetMinion.addEffect(contagiousEffect)) { Messages.OutgoingMessages.Game.GAddEffectOnMinion.sendMessage(targetMinion.game.players, targetMinion, contagiousEffect); } destroyable = true; } }
public void createMinionEffect(Engine.Minions.Minion minion, Engine.Effects.MinionEffects.MinionEffect minionEffect) { spriteContainer = (GameObject)GameObject.Instantiate(staticSpriteContainer, minion.getWorldHeadPosition(), Quaternion.identity); this.minion = minion; this.effect = minionEffect; }
public static void sendMessage(ICollection <Player> receiverPlayers, Minion minion, MinionEffect effect) { RawMessage msg = new RawMessage(); msg.putInt("id", TypeIdGenerator.getMessageId(typeof(GAddEffectOnMinion))); if (receiverPlayers != null && receiverPlayers.Count != 0) { msg.putInt("iid", minion.instanceId); msg.putInt("tid", TypeIdGenerator.getMinionEffectId(effect.GetType())); foreach (var receiverPlayer in receiverPlayers) { receiverPlayer.user.session.client.SendMessage(msg); } } }