PowerMessage.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. Vector3 pos = owner.position;
  17. data.PutFloat ("x", pos.x);
  18. data.PutFloat ("y", pos.z);
  19. data.PutSFSObject("d", powerData);
  20. }
  21. public override bool AttempOverride (Message msg)
  22. {
  23. PowerMessage powerMsg = msg as PowerMessage;
  24. if(powerMsg == null)
  25. return false;
  26. int originPowerId = data.GetInt("p");
  27. int originOwnerId = data.GetInt ("i");
  28. int originUserId = data.GetInt ("u");
  29. int targetPowerId = msg.data.GetInt("p");
  30. int targetOwnerId = msg.data.GetInt ("i");
  31. int targetUserId = msg.data.GetInt ("u");
  32. int crystalNeed = data.GetInt ("c");
  33. if (crystalNeed > 0 && originUserId == targetUserId && originPowerId == targetPowerId)
  34. {
  35. this.data = msg.data;
  36. return true;
  37. }
  38. if(originPowerId == targetPowerId && originOwnerId == targetOwnerId)
  39. {
  40. this.data = msg.data;
  41. return true;
  42. }
  43. return false;
  44. }
  45. }