public int overlaps(SynchronizedObject param1) { List<int> _loc_8 = new List<int>(); //int _loc_10 = 0; int _loc_11 = 0; if (param1.x < 0 || param1.y < 0 || param1.x >= bot.Room.Width * 16 - 8 || param1.y >= bot.Room.Height * 16 - 8) { // //WriteLine("returning 1, worldborder, " + name + " " + param1.x / 16 + " " + param1.y / 16); return 1; } //else //Console.WriteLine("NOT returning 1, worldborder, " + name + " " + param1.x / 16 + " " + param1.y / 16); PhysicsPlayer _loc_2 = this; if (_loc_2.isgod || _loc_2.ismod) { //Console.WriteLine("returning 0, isgod"); return 0; } double _loc_3 = ((_loc_2.x) / 16); double _loc_4 = ((_loc_2.y) / 16); //double _loc_5 = (param1.x + param1.height) / 16; //Console.WriteLine(_loc_3 + " - " +_loc_5); //double _loc_6 = (param1.y + param1.width) / 16; //bool _loc_7 = false; for (int xx = -2; xx < 1; xx++) { for (int yy = -2; yy < 1; yy++) { if (_loc_3 + xx > 0 && _loc_3 + xx < bot.Room.Width && _loc_4 + yy > 0 && _loc_4 + yy <= bot.Room.Height) { for (int xTest = 0; xTest < 16; xTest++) { for (int yTest = 0; yTest < 16; yTest++) { if (hitTest((int)(xTest + _loc_2.x + xx * 16), (int)(yTest + _loc_2.y + yy * 16))) { double _loc_9 = _loc_4; IBlock currentBlock = bot.Room.getBlock(0, (int)(((xx * 16) + _loc_2.x + xTest) / 16), (int)(((yy * 16) + _loc_2.y + yTest) / 16)); if (currentBlock == null) continue; _loc_11 = currentBlock.Id; if (ItemId.isSolid(_loc_11)) { switch (_loc_11) { case 23: { if (bot.Room.HideRed) { continue; } break; } case 24: { if (bot.Room.HideGreen) { continue; } break; } case 25: { if (bot.Room.HideBlue) { continue; } break; } case 26: { if (!bot.Room.HideRed) { continue; } break; } case 27: { if (!bot.Room.HideGreen) { continue; } break; } case 28: { if (!bot.Room.HideBlue) { continue; } break; } case 156: { if (bot.Room.HideTimeDoor) { continue; } break; } case 157: { if (!bot.Room.HideTimeDoor) { continue; } break; } case ItemId.DOOR_PURPLE: { if (this.purple) { continue; } break; } case ItemId.GATE_PURPLE: { if (!this.purple) { continue; } break; } case ItemId.DOOR_CLUB: { if (isclubmember) { continue; } break; } case ItemId.GATE_CLUB: { if (!isclubmember) { continue; } break; } case ItemId.COINDOOR: { if (currentBlock is BlockCoinDoor && ((BlockCoinDoor)currentBlock).coins <= coins) { continue; } break; } case ItemId.COINGATE: { if (currentBlock is BlockCoinGate && ((BlockCoinGate)currentBlock).coins > coins) { continue; } break; } case ItemId.ZOMBIE_GATE: { if (_zombie) { continue; } break; } case ItemId.ZOMBIE_DOOR: { if (!_zombie) { continue; } break; } case 50: { /*if (_loc_2.isme) { knownSecrets[_loc_10 + "x" + _loc_9] = true; }*/ break; } case 61: case 62: case 63: case 64: case 89: case 90: case 91: case 96: case 97: case 122: case 123: case 124: case 125: case 126: case 127: case 146: case 154: case 158: case 194: { if (_loc_2.speedY < 0 || _loc_9 <= _loc_2.overlapy) { if (_loc_9 != _loc_4 || _loc_2.overlapy == -1) { _loc_2.overlapy = (int)_loc_9; } //_loc_7 = true; break; } break; } case 83: case 77: { break; } default: { break; } } return _loc_11; } } } } } } } //_loc_11 = Form1.blockMap[_loc_3, _loc_4].ID; /*while (_loc_9 < _loc_6) { _loc_8.Clear(); for (int i = 0; i < Form1.worldSize.X; i++) { _loc_8.Add(Form1.blockMap[i, _loc_9].ID); } _loc_10 = _loc_3; while (_loc_10 < _loc_5) { if (_loc_8.Count != 0) { _loc_11 = _loc_8[_loc_10]; if (ItemId.isSolid(_loc_11)) { switch(_loc_11) { case 61: case 62: case 63: case 64: case 89: case 90: case 91: case 96: case 97: case 122: case 123: case 124: case 125: case 126: case 127: case 146: case 154: case 158: case 194: { if (_loc_2.speedY < 0 || _loc_9 <= _loc_2.overlapy) { if (_loc_9 != _loc_4 || _loc_2.overlapy == -1) { _loc_2.overlapy = _loc_9; } _loc_7 = true; break; } break; } case 83: case 77: { break; } default: { break; } } if (_loc_11 != 9) Console.WriteLine("returning " + _loc_11 + ", collision"); return _loc_11; } } _loc_10++; } _loc_9++; } if (!_loc_7) { _loc_2.overlapy = -1; }*/ return 0; }
public PhysicsPlayer(IBot bot, int id, string name, int smiley, double xPos, double yPos, bool isGod, bool isMod, bool hasChat, int coins, bool purple, bool isFriend, int level) : base(null, 16) { this.bot = bot; this.smiley = smiley; this.isgod = isGod; this.ismod = isMod; this._id = id; this.hasChat = hasChat; this.coins = coins; this.purple = purple; this.isFriend = isFriend; this.level = level; //this.Ding = Player_Ding; //this.Crown = Player_Crown; //this.CrownSilver = Player_CrownSilver; //this.Aura = Player_Aura; //this.ModAura = Player_ModAura; //this.FireAura = Player_FireAura; //this.LevitationEffect = Player_LevitationEffect; //this.ding = new this.Ding(); //this.crown = new this.Crown().bitmapData; //this.crown_silver = new this.CrownSilver().bitmapData; //this.aura = new this.Aura().bitmapData; //this.modaura = new this.ModAura().bitmapData; ///this.fireAura = new this.FireAura().bitmapData; //this.invulnerableAura = AnimationManager.animProtection; //this.levitationAnimaitonBitmapData = new this.LevitationEffect().bitmapData; //this.clubaura = AnimationManager.animClubAura; this.rect2 = new Rectangle(0, 0, 16, 26); //this.fireAnimation = new BlSprite(this.fireAura, 0, 0, 26, 26, 6); //this.protectionAnimation = new BlSprite(this.invulnerableAura, 0, 0, 26, 26, 24); //this.levitationAnimation = new BlSprite(this.levitationAnimaitonBitmapData, 0, 0, 26, 26, 32); this.queue = new Queue<int>(Config.physics_queue_length); this.lastJump = new DateTime(); this.lastPortal = new Point(); this.that = this as SynchronizedObject; this.modrect = new Rectangle(0, 0, 64, 64); this.clubrect = new Rectangle(0, 0, 64, 64); //this.touchpotions = {}; this._currentThrust = this._maxThrust; //super(ItemManager.smiliesBMD); //this.state = param5; //this.connection = param4; //this.world = param1; //this.hitmap = param1; this.x = xPos; this.y = yPos; this.isme = false; this.name = name; //this.chat = new Chat(param2.indexOf(" ") != -1 ? ("") : (param2)); size = 16; width = 16; height = 16; return; }