using UnityEngine; using System.Collections; using System.Collections.Generic; using Sfs2X.Entities.Data; public class PowerMessage : Message { public PowerMessage(Power power, ISFSObject powerData) { this.cmd = Command.Attack; IPowerOwner owner = power.GetOwner (); data = new SFSObject(); data.PutInt("p", power.GetId()); data.PutInt("i", owner.id); data.PutInt ("u", owner.userId); data.PutInt ("c", power.crystalNeed); data.PutInt ("t", owner.typeId); Vector3 pos = owner.position; data.PutFloat ("x", pos.x); data.PutFloat ("y", pos.z); data.PutSFSObject("d", powerData); } public override bool AttempOverride (Message msg) { PowerMessage powerMsg = msg as PowerMessage; if(powerMsg == null) return false; int originPowerId = data.GetInt("p"); int originOwnerId = data.GetInt ("i"); int originUserId = data.GetInt ("u"); int originTypeId = data.GetInt ("t"); int targetPowerId = msg.data.GetInt("p"); int targetOwnerId = msg.data.GetInt ("i"); int targetUserId = msg.data.GetInt ("u"); int targetTypeId = msg.data.GetInt ("t"); int crystalNeed = data.GetInt ("c"); if (crystalNeed > 0 && originUserId == targetUserId && originPowerId == targetPowerId) { this.data = msg.data; return true; } if(originPowerId == targetPowerId && originOwnerId == targetOwnerId && originTypeId == targetTypeId) { this.data = msg.data; return true; } return false; } }