public void Exorcised() { state = SoulStates.FLEE; col.enabled = true; particles.Play(); transform.SetParent(null); }
// Update is called once per frame void Update() { switch (state) { case SoulStates.WANDER: Transform t = SearchForHost(); if (t != null) { target = t; col.enabled = true; state = SoulStates.CHASE; } break; case SoulStates.CHASE: MoveToTarget(); break; case SoulStates.POSSESS: break; case SoulStates.FLEE: break; } }
void PossessTarget() { victim = target.GetComponent <AiCore>(); job.victim = victim; job.life.intType = life.life; victim.QuitPath(); victim.tempSpell = fireball; foreach (MyStateMachine.BaseStateMachine j in victim.listOfJobs) { j.enabled = false; } transform.SetParent(target); job.tranformToDemon.fromSprite = victim.sprite; job.tranformToDemon.toSprite = formSprite; job.tranformToDemon.hitbox = hitbox; job.tranformToDemon.toState = true; job.returnBackToNormal.fromSprite = formSprite; job.returnBackToNormal.toSprite = victim.sprite; job.returnBackToNormal.hitbox = hitbox; job.returnBackToNormal.toState = false; job.deathReturnNormalForm.fromSprite = formSprite; job.deathReturnNormalForm.toSprite = victim.sprite; job.deathReturnNormalForm.hitbox = hitbox; job.deathReturnNormalForm.toState = false; job.InitializeNewBody(); particles.Stop(); body.bodyType = RigidbodyType2D.Kinematic; col.enabled = false; state = SoulStates.POSSESS; }