IEnumerator DelayedRespawn(float seconds) { yield return(new WaitForSeconds(seconds)); if (Respawn) { PlayerMovement pm = gameObject.GetComponent <PlayerMovement>(); if (pm == null) { pm = gameObject.transform.parent.GetComponent <PlayerMovement>(); } pm.gameObject.transform.position = SpawnManager.instance.GetRandomSpawnPoint(); Rigidbody2D rig = isClone ? gameObject.transform.parent.gameObject.GetComponent <Rigidbody2D>() : GetComponent <Rigidbody2D>(); //animations, immunity and stopping movement during that rig.gravityScale = 1; rig.isKinematic = false; Array.ForEach(GetComponentsInChildren <Collider2D>(), x => x.isTrigger = false); SheetAnimation ani = isClone ? gameObject.transform.parent.gameObject.GetComponent <SheetAnimation>() : GetComponent <SheetAnimation>(); float spawnTime = 0.5f; ani.PlayAnimation("Spawn", color, false, 8.0f / spawnTime); SetImmunity(true, true, spawnTime * 2.0f); //extra immunity after spawning (*2.0f) pm.StunnedTimer = spawnTime; rig.isKinematic = true; StartCoroutine(SpawnCallback(spawnTime)); } else { LevelBounds.instance.UnRegisterObject(this.gameObject); GameObject.Destroy(this.gameObject); } }
GameObject LoadButtonPointer() { GameObject pointer = new GameObject("buttonPointer"); pointer.AddComponent <SpriteRenderer>(); SheetAnimation animation = pointer.AddComponent <SheetAnimation>(); animation.doIdle = false; return(pointer); }
void Awake() { overlayObject = new GameObject("OverlayObject"); overlayObject.transform.parent = gameObject.transform; overlayObject.transform.localPosition = Vector3.zero; SRenderer = overlayObject.AddComponent <SpriteRenderer>(); SRenderer.sortingOrder = -10; SAnimation = overlayObject.AddComponent <SheetAnimation>(); SAnimation.doIdle = false; MainRenderer = GetComponent <SpriteRenderer>(); if (LevelBounds.instance != null) { LevelBounds.instance.RegisterObject(overlayObject); } }
// Use this for initialization void Start() { baseMoveSpeed = MoveSpeed; _rigid = GetComponent <Rigidbody2D>(); SpriteR = GetComponent <SpriteRenderer>(); SAnimation = GetComponent <SheetAnimation>(); Pcolor = GetComponent <PlayerHit>().color; overlay = GetComponent <SpriteOverlay>(); if (currentAxis == 0 && InputManager.GetAxis("Horizontal", playerID) != 0) { ChangeAxis(); } /* * GameObject clones = new GameObject("test clones"); * testClone = new GameObject(); * testClone.transform.parent = clones.transform; * testClone.AddComponent<SpriteRenderer>().sprite = SpriteR.sprite; * testClone.GetComponent<SpriteRenderer>().sortingOrder = SpriteR.sortingOrder - 1; * testClone.transform.localScale = new Vector3(testClone.transform.localScale.x * 0.3f, testClone.transform.localScale.y * 0.3f, testClone.transform.localScale.z); * * testClone2 = new GameObject(); * testClone2.transform.parent = clones.transform; * testClone2.AddComponent<SpriteRenderer>().sprite = SpriteR.sprite; * testClone2.GetComponent<SpriteRenderer>().flipY = true; * testClone2.GetComponent<SpriteRenderer>().sortingOrder = SpriteR.sortingOrder - 2; * testClone2.GetComponent<SpriteRenderer>().color = Color.yellow; * testClone2.transform.localScale = new Vector3(testClone2.transform.localScale.x * 0.3f, testClone2.transform.localScale.y * 0.3f, testClone2.transform.localScale.z); * * for (int i = 0; i < testClones.Length; i++) * { * testClones[i] = new GameObject(); * testClones[i].transform.parent = clones.transform; * testClones[i].AddComponent<SpriteRenderer>().sprite = SpriteR.sprite; * testClones[i].GetComponent<SpriteRenderer>().flipY = true; * testClones[i].GetComponent<SpriteRenderer>().sortingOrder = SpriteR.sortingOrder - 3; * testClones[i].GetComponent<SpriteRenderer>().color = Color.magenta; * testClones[i].transform.localScale = new Vector3(testClones[i].transform.localScale.x * 0.3f, testClones[i].transform.localScale.y * 0.3f + ((float)i / 25f), testClones[i].transform.localScale.z); * } */ }
protected override void Pickup(GameObject player) { PlayerMovement mov = player.GetComponent <PlayerMovement>(); if (!mov) { mov = player.transform.parent.gameObject.GetComponent <PlayerMovement>(); } ScoreManager.instance.ChangeScore((int)mov.playerID, ScoreManager.instance.scoreMode == ScoreManager.ScoreMode.Health? -1 : 1); GameObject temp = new GameObject("Life animation"); temp.transform.position = transform.position; temp.AddComponent <SpriteRenderer>(); SheetAnimation SA = temp.AddComponent <SheetAnimation>(); float time = 1.5f; SA.PlayAnimationUnC("Powerups/Powers/LifeUp/Life", false, 8f / time); temp.AddComponent <DestroyAfterSeconds>().Seconds = time; ScoreManager.gameData.LivesPicked++; }
GameObject LoadButtonPointer() { GameObject pointer = new GameObject("buttonPointer"); int amount = 2; buttonPointerAnimations = new SheetAnimation[amount]; for (int i = 0; i < amount; i++) { GameObject pointerImage = new GameObject("buttonPointerImage" + i); pointerImage.transform.parent = pointer.transform; pointerImage.transform.localPosition += new Vector3(buttonPointerXOffsets[i], 0, 0); pointerImage.transform.localScale = new Vector3(buttonPointerScale, buttonPointerScale, 1); SpriteRenderer sRenderer = pointerImage.AddComponent <SpriteRenderer>(); sRenderer.sortingOrder = 10; sRenderer.flipX = i % 2 == 0; SheetAnimation animation = pointerImage.AddComponent <SheetAnimation>(); animation.doIdle = false; buttonPointerAnimations[i] = animation; } return(pointer); }
public void Init() { _col = GetComponent <BoxCollider2D>(); _rigid = GetComponent <Rigidbody2D>(); _lastXPos = transform.position.x; _spriteR = GetComponent <SpriteRenderer>(); _sheetAni = GetComponent <SheetAnimation>(); _sheetAni.doIdle = false; _stunnedSpriteSheet = Resources.LoadAll <Sprite>("SinglePlayer/Enemies/Knocked out"); if (!_stunnedObject) { _stunnedObject = new GameObject(); _stunnedObject.transform.parent = this.transform; _stunnedObject.transform.localPosition = Vector2.zero; _stunnedObject.AddComponent <SpriteRenderer>(); _stunnedObject.AddComponent <SheetAnimation>().doIdle = false; _stunnedObject.SetActive(false); } SetSpeed(); CorrectSprite(); }
public void OnDeath(GameObject other) { FindObjectOfType <Splat>().DoSplat(transform.position, 0, (int)color); /* * //splat * GameObject splatObject = new GameObject("splatInstance"); * splatObject.transform.position = this.gameObject.transform.position; * SpriteRenderer SR = splatObject.AddComponent<SpriteRenderer>(); * SR.flipX = UnityEngine.Random.Range(0, 2) == 0? false : true; * SR.flipY = UnityEngine.Random.Range(0, 2) == 0 ? false : true; * * SR.sortingOrder = -14; //before background but behind the rest * SheetAnimation ani = splatObject.AddComponent<SheetAnimation>(); * LevelBounds.instance.RegisterObject(splatObject, true); * ani.PlayAnimation("Splat", color, false, 1); */ /* * //shield powerup / spawn immunity * if(Immunity) * { * if (!StayImmune) Immunity = false; * IC(); * return; * }*/ //score //Debug.Log(other.name + gameObject.name); int playerID = other.name.Contains("1") ? 0 : (other.name.Contains("2") ? 1 : (other.name.Contains("3") ? 2 : 3)); int thisplayerID = gameObject.name.Contains("1") ? 0 : (gameObject.name.Contains("2") ? 1 : (gameObject.name.Contains("3") ? 2 : 3)); if (playerID == thisplayerID) { return; } //if (playerID > ScoreManager.instance.score.Length) playerID = 1; int useingID = ScoreManager.instance.scoreMode == ScoreManager.ScoreMode.Health ? thisplayerID : playerID; ScoreManager.instance.ChangeScore(useingID, ScorePerKill); if (ScoreManager.instance.scoreMode == ScoreManager.ScoreMode.Health && ScoreManager.instance.score[useingID] <= 0) { Respawn = false; } //Tag mode if (ScoreManager.instance.gameMode is TagMode) { TagMode Tagmode = (TagMode)ScoreManager.instance.gameMode; if (Tagmode.currentTag == other) { Tagmode.RemoveTag(other); //if (other.GetComponentInChildren<PlayerHit>()) Tagmode.SetTag(gameObject); } /* * else if (Tagmode.currentTag == other) * { * ScoreManager.instance.ChangeScore(playerID, 5);//bonus points if you are the Tag * }*/ } else if (ScoreManager.instance.gameMode is OwnedMode) { OwnedMode ownedMode = (OwnedMode)ScoreManager.instance.gameMode; ownedMode.SetOwned(gameObject, other); } else //chicken mode if (ScoreManager.instance.gameMode is ChickenMode) { ChickenMode chickenmode = (ChickenMode)ScoreManager.instance.gameMode; if (chickenmode.currentChicken == gameObject || chickenmode.currentChicken == null) { chickenmode.RemoveChicken(gameObject); if (other.GetComponentInChildren <PlayerHit>()) { chickenmode.SetChicken(other); } } else if (chickenmode.currentChicken == other) { ScoreManager.instance.ChangeScore(playerID, 5);//bonus points if you are the chicken } } float deathTime = 0.5f; PlayerMovement pm = isClone ? gameObject.transform.parent.gameObject.GetComponent <PlayerMovement>() : GetComponent <PlayerMovement>(); pm.StunnedTimer = deathTime; Rigidbody2D rig = isClone ? gameObject.transform.parent.gameObject.GetComponent <Rigidbody2D>() : GetComponent <Rigidbody2D>(); rig.gravityScale = 0; rig.velocity = Vector2.zero; rig.isKinematic = true; PowerupUser pu = isClone? gameObject.transform.parent.gameObject.GetComponent <PowerupUser>() : GetComponent <PowerupUser>(); pu.EndAllPowerups(); Array.ForEach(GetComponentsInChildren <Collider2D>(), x => x.isTrigger = true); SheetAnimation sa = isClone ? gameObject.transform.parent.gameObject.GetComponent <SheetAnimation>() : GetComponent <SheetAnimation>(); sa.PlayAnimation("Death", color, false, 5.0f / deathTime); StartCoroutine(DelayedRespawn(deathTime)); /* * if (Respawn) * { * PlayerMovement pm = gameObject.GetComponent<PlayerMovement>(); * if (pm == null) pm = gameObject.transform.parent.GetComponent<PlayerMovement>(); * PlayerMovement.Controls controls = pm.controls; * pm.gameObject.transform.position = SpawnManager.instance.GetRandomSpawnPoint(); * } * else * { * GameObject.Destroy(this.gameObject); * }*/ }