public override uint UpdateW(int arg1, VigObject arg2) { short sVar1; uint uVar2; int iVar3; RiftBlade2 puVar4; VigTransform puVar5; short sVar6; Vector3Int local_18; switch (arg1) { case 0: FUN_42330(arg2); uVar2 = 0; break; case 1: type = 3; maxHalfHealth = 3; flags |= 0x4000; goto default; default: uVar2 = 0; break; case 12: if (DAT_19 == 0) { puVar4 = arg2.vData.ini.FUN_2C17C(2, typeof(RiftBlade2), 8) as RiftBlade2; if (puVar4 == null) { return(0); //FUN_15D9C } else { Utilities.ParentChildren(puVar4, puVar4); DAT_19 = 0; puVar4.flags = 0x20000000; sVar1 = arg2.id; puVar4.type = 8; puVar4.DAT_80 = arg2; puVar4.id = sVar1; puVar5 = GameManager.instance.FUN_2CDF4(arg2); puVar4.DAT_84_2 = puVar5; puVar4.vTransform = arg2.vTransform; puVar4.DAT_AC = 0x199; puVar4.DAT_B0 = 0x1000; puVar4.FUN_305FC(); puVar4.FUN_30B78(); puVar4.FUN_30BF0(); arg2.FUN_30BA8(); arg2.physics1.W = 0; arg2.physics1.X = 0; arg2.flags |= 0x6000020; arg2.physics1.Y = 0; arg2.physics1.Z = 0; arg2.physics2.X = 0; arg2.physics2.Y = 0; arg2.physics2.Z = 0; GameManager.instance.FUN_30CB0(puVar4, 29); puVar4.screen = vTransform.position; puVar4.screen.x = -vTransform.position.x >> 12; puVar4.screen.y = -vTransform.position.y >> 12; puVar4.screen.z = -vTransform.position.z >> 12; puVar4.DAT_B4 = 0; puVar4.vTransform.position = Utilities.FUN_24148(puVar4.vTransform, vTransform.position); iVar3 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E580(iVar3, arg2.vData.sndList, 4, puVar4.vTransform.position); iVar3 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E188(iVar3, vData.sndList, 2); GameManager.instance.DAT_1084++; sVar6 = (short)(maxHalfHealth - 1); maxHalfHealth = (ushort)sVar6; if (sVar6 == 0) { FUN_3A368(); return(240); } } uVar2 = 240; } else { //iVar3 = GameManager.instance.FUN_1DD9C(); //GameManager.instance.FUN_1E14C(iVar3, GameManager.instance.DAT_C2C, 1); //uVar2 = 240; return(0); } break; case 13: uVar2 = 0; if (GameManager.instance.DAT_1084 == 0) { local_18 = Utilities.FUN_24304(arg2.vTransform, ((Vehicle)arg2).target.vTransform.position); uVar2 = 0; if ((uint)local_18.z - 0x19001 < 0x63fff) { if (local_18.x < 0) { local_18.x = -local_18.x; } uVar2 = local_18.x * 6 - 0x10000 < local_18.z ? 1U : 0; } } break; } return(uVar2); }
public override uint UpdateW(int arg1, VigObject arg2) { int iVar3; HellGate2 ppcVar4; VigObject pcVar5; XOBF_DB dbVar5; int iVar7; VigObject oVar7; VigTransform tVar7; Vector3Int auStack24; switch (arg1) { case 1: FUN_30B78(); maxHalfHealth = 3; flags |= 0x4000; break; case 12: pcVar5 = ((Vehicle)arg2).target; if ((pcVar5 == null && (pcVar5 = arg2) == null) || (flags & 0x1000000) != 0 || (arg2.flags & 0x30000000) != 0x30000000 || pcVar5.vTransform.position.x < VigTerrain.instance.DAT_DE4 || VigTerrain.instance.DAT_DF0 < pcVar5.vTransform.position.x || pcVar5.vTransform.position.z < VigTerrain.instance.DAT_DEC || VigTerrain.instance.DAT_DF0 < pcVar5.vTransform.position.z || VigTerrain.instance.GetTileByPosition ((uint)pcVar5.vTransform.position.x, (uint)pcVar5.vTransform.position.z).DAT_10[3] == 7) { //iVar3 = GameManager.instance.FUN_1DD9C(); //GameManager.instance.FUN_1E14C(iVar3, GameManager.instance.DAT_C2C, 1); return(0); } else { if (arg2.id < 0) { GameManager.instance.FUN_15B00(~arg2.id, 128, 64, 64); } if (maxHalfHealth < 4) { PDAT_74 = PDAT_74.PDAT_74; GameManager.instance.FUN_309A0(PDAT_74); } iVar3 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E580(iVar3, vData.sndList, 4, arg2.vTransform.position); iVar3 = GameManager.instance.FUN_1DD9C(); GameManager.instance.FUN_1E188(iVar3, vData.sndList, 2); tVar7 = GameManager.instance.FUN_2CDF4(this); auStack24 = GameManager.instance.terrain.FUN_1B998((uint)tVar7.position.x, (uint)tVar7.position.z); auStack24 = Utilities.VectorNormal(auStack24); GameObject obj = new GameObject(); ppcVar4 = obj.AddComponent <HellGate2>(); ppcVar4.flags = 0xa4; dbVar5 = vData; ppcVar4.DAT_80 = arg2; ppcVar4.DAT_94 = this; ppcVar4.vData = dbVar5; if (pcVar5 == null) { pcVar5 = arg2; } ppcVar4.DAT_84 = pcVar5; ppcVar4.vTransform.rotation = Utilities.FUN_2A5EC(auStack24); ppcVar4.vTransform.position = tVar7.position; ppcVar4.FUN_305FC(); if (ppcVar4.GetType().IsSubclassOf(typeof(VigObject))) { ppcVar4.UpdateW(2, 0); } arg2.FUN_30BA8(); arg2.flags |= 0x6000020; GameManager.instance.DAT_1084++; maxHalfHealth--; } if (-1 < arg2.id) { return(900); } return(480); case 13: if (GameManager.instance.DAT_1084 != 0) { return(0); } if ((flags & 0x1000000) != 0) { return(0); } oVar7 = ((Vehicle)arg2).target; if ((arg2.flags & oVar7.flags & 0x30000000) != 0x30000000) { return(0); } if (1524 < oVar7.physics1.W) { return(0); } iVar7 = Utilities.FUN_29F6C(arg2.screen, oVar7.screen); return(0x64000 < iVar7 ? 1U : 0); case 16: oVar7 = arg2.PDAT_74; arg2.PDAT_74 = oVar7.PDAT_74; if (2 < maxHalfHealth) { GameManager.instance.FUN_309A0(oVar7); return(0); } oVar7.PDAT_74 = PDAT_74; PDAT_74 = oVar7; ((Demon)oVar7).DAT_94 = this; break; } return(0); }