// Update is called once per frame void Update() { float deltaX = 0f; float deltaY = 0f; Vector3 NewXY = transform.position; float lookX = 0f; float lookY = 1f; PlayerBS player = Player.GetComponentInChildren <PlayerBS>(); if (freezeTarget == false) { if (FollowEnabled) { deltaX = Input.GetAxis("Mouse X") * Xsensitivity; deltaY = Input.GetAxis("Mouse Y") * Ysensitivity; gameAngle -= deltaX; lookX = gameDist * Mathf.Cos(gameAngle); lookY = gameDist * Mathf.Sin(gameAngle); Vector3 rotation = new Vector3(transform.parent.position.x + lookX, transform.parent.position.y + lookY, 0); float newY = transform.localPosition.y + deltaY; newY = Mathf.Clamp(newY, minDist, maxDist); NewXY = new Vector3(transform.localPosition.x, newY, 0); transform.localPosition = NewXY; // sets the Y param, distance away player.character.SetFacing(rotation); } } }
// when someone enters the objective region private void OnTriggerEnter2D(Collider2D collision) { GameObject go = collision.gameObject; PlayerBS pl = null; ZombieBS zm = null; if (go != null) { switch (objType) { case ObjType.WinLevel: pl = go.GetComponent <PlayerBS>(); if (pl != null) { bool hasAllItems = true; if (ReqItems.Count > 0) { foreach (ItemBS i in ReqItems) { if (false == pl.character.inventory.Contains(i)) { hasAllItems = false; } } } if (hasAllItems) { finishedObjective = true; } } break; case ObjType.QuitLevel: pl = go.GetComponent <PlayerBS>(); if (pl != null) { finishedObjective = true; } break; case ObjType.LoseLevel: zm = go.GetComponent <ZombieBS>(); if (zm != null) { finishedObjective = true; } break; default: break; } } }
// Use this for initialization void Start() { startPosition = target = transform.position; //startRotation = targetRotation = transform.rotation; cam = GetComponent <Camera>(); playerbs = PlayerObject.GetComponent <PlayerBS>(); PlayerTarget = playerbs.target; if (playerCamTarget == null) { //playerCamTarget } }
// kill self! public void kill() { PlayerBS player = gameObject.GetComponent <PlayerBS>(); if (player == null) { GameObject.Destroy(gameObject, 0.01f); //gameObject.SetActive(false); GAMESTATE.ALL_CHARACTERS.Remove(gameObject); } else { print("GAME OVER!"); gameObject.SetActive(false); } // }
// handles the GUI state private void OnGUI() { PlayerBS pl1 = Player1.GetComponent <PlayerBS>(); float w = Screen.width; float h = Screen.height; UI_menu pause_menu = new UI_menu(Screen.width * 0.15f, Screen.height * 0.15f, Screen.width * 0.7f, Screen.height * 0.7f, 4, 1, true); UI_menu player_stats = new UI_menu(w * 0f, h * 0.8f, w * 0.25f, h * 0.2f, 4, 2, true); UI_menu weapons = new UI_menu(w * 0.6f, h * 0.8f, w * 0.4f, h * 0.2f, 3, 3, true); if (isPaused == true) { GUI.Box(pause_menu.mainrect, "Pause menu"); if (GUI.Button(pause_menu.sub_rects[0], "Continue game")) { togglePaused(); } if (GUI.Button(pause_menu.sub_rects[1], "Inventory")) { } if (GUI.Button(pause_menu.sub_rects[2], "Settings")) { } if (GUI.Button(pause_menu.sub_rects[3], "Quit Game")) { } } else { GUI.Box(player_stats.mainrect, pl1.character.name); GUI.Box(player_stats.sub_rects[0], "Health"); GUI.Box(player_stats.sub_rects[1], "" + (pl1.character.health)); GUI.Box(weapons.mainrect, "Weapons"); string rw = "None"; string mw = "None"; string tw = "None"; string rw2 = "None"; string mw2 = "None"; string tw2 = "None"; if (pl1.character.missileWeapon != null) { rw = pl1.character.missileWeapon.name; rw2 = pl1.character.missileWeapon.getAmmoString(); } if (pl1.character.meleeWeapon != null) { mw = pl1.character.meleeWeapon.name; mw2 = pl1.character.meleeWeapon.getAmmoString(); } if (pl1.character.tertiaryWeapon != null) { tw = pl1.character.tertiaryWeapon.name; tw2 = "???"; // TODO : replace with # of grenades } GUI.Box(weapons.sub_rects[0], "Ranged"); GUI.Box(weapons.sub_rects[1], rw); GUI.Box(weapons.sub_rects[2], rw2); GUI.Box(weapons.sub_rects[3], "Melee"); GUI.Box(weapons.sub_rects[4], mw); GUI.Box(weapons.sub_rects[5], mw2); GUI.Box(weapons.sub_rects[6], "Tertiary"); GUI.Box(weapons.sub_rects[7], tw); GUI.Box(weapons.sub_rects[8], tw2); } }