PowerMessage.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using Sfs2X.Entities.Data;
  5. public class PowerMessage : Message
  6. {
  7. public PowerMessage(Power power, ISFSObject powerData)
  8. {
  9. this.cmd = Command.Attack;
  10. IPowerOwner owner = power.GetOwner ();
  11. data = new SFSObject();
  12. data.PutInt("p", power.GetId());
  13. data.PutInt("i", owner.id);
  14. data.PutInt ("u", owner.userId);
  15. data.PutInt ("c", power.crystalNeed);
  16. data.PutInt ("t", owner.typeId);
  17. Vector3 pos = owner.position;
  18. data.PutFloat ("x", pos.x);
  19. data.PutFloat ("y", pos.z);
  20. data.PutSFSObject("d", powerData);
  21. }
  22. public override bool AttempOverride (Message msg)
  23. {
  24. PowerMessage powerMsg = msg as PowerMessage;
  25. if(powerMsg == null)
  26. return false;
  27. int originPowerId = data.GetInt("p");
  28. int originOwnerId = data.GetInt ("i");
  29. int originUserId = data.GetInt ("u");
  30. int originTypeId = data.GetInt ("t");
  31. int targetPowerId = msg.data.GetInt("p");
  32. int targetOwnerId = msg.data.GetInt ("i");
  33. int targetUserId = msg.data.GetInt ("u");
  34. int targetTypeId = msg.data.GetInt ("t");
  35. int crystalNeed = data.GetInt ("c");
  36. if (crystalNeed > 0 && originUserId == targetUserId && originPowerId == targetPowerId)
  37. {
  38. this.data = msg.data;
  39. return true;
  40. }
  41. if(originPowerId == targetPowerId && originOwnerId == targetOwnerId && originTypeId == targetTypeId)
  42. {
  43. this.data = msg.data;
  44. return true;
  45. }
  46. return false;
  47. }
  48. }