AddFlagHandler.cs 1014 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using Sfs2X.Entities.Data;
  5. public class AddFlagHandler : BAHandler
  6. {
  7. public AddFlagHandler(BARoom room):base(room){}
  8. public override void HandleRequest (BAServer server, ISFSObject msg, int sender, int timeStamp)
  9. {
  10. ISFSObject data = msg.GetSFSObject (Message.LABEL_DATA);
  11. if(!room.IsMyUserId(sender))
  12. {
  13. ISFSArray arr = data.GetSFSArray ("l");
  14. for(int i=0; i<arr.Count; i++)
  15. {
  16. ISFSObject obj = arr.GetSFSObject (i);
  17. int teamId = obj.GetInt ("t");
  18. int x = obj.GetInt ("x");
  19. int y = obj.GetInt ("y");
  20. int craftId = obj.GetInt ("c");
  21. bool inBase = obj.GetBool ("b");
  22. BAFlag flag = null;
  23. room.flagDict.TryGetValue (teamId, out flag);
  24. if(flag == null)
  25. {
  26. flag = new BAFlag (teamId, x, y);
  27. flag.inBase = inBase;
  28. room.flagDict.Add (teamId, flag);
  29. }
  30. flag.x = x;
  31. flag.y = y;
  32. flag.inBase = inBase;
  33. }
  34. }
  35. server.RoomHandleResponse (msg);
  36. }
  37. }