private void SetType(string type) { try { Enums.CardTypes cardType = (Enums.CardTypes)Enum.Parse(typeof(Enums.CardTypes), type); if (Enum.IsDefined(typeof(Enums.CardTypes), cardType) | cardType.ToString().Contains(",")) this.type = cardType; else { this.type = Enums.CardTypes.Error; Debug.LogError("Unable to resolve " + type + " to a type. Setting " + name + " to type Error."); } } catch (ArgumentException) { this.type = Enums.CardTypes.Error; Debug.LogError("Unable to resolve " + type + " to a type. Setting " + name + " to type Error."); } }
private static Enums.PlayerState MoveBegining(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty) { if (hit) { return(Enums.PlayerState.Hit); } if (animDone) { return(Enums.PlayerState.MoveEnding); } return(Enums.PlayerState.MoveBegining); }
//The following methods control when and how you can transition between states private static Enums.PlayerState Idle(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty) { if (hit) { return(Enums.PlayerState.Hit); } if (!handEmpty && CustomInput.BoolFreshPress(CustomInput.UserInput.UseCard)) { //switch off of type return(Enums.PlayerState.Sword); } if (CustomInput.BoolFreshPress(CustomInput.UserInput.Attack)) { return(Enums.PlayerState.BasicAttack); } if (direction != Enums.Direction.None) { return(Enums.PlayerState.MoveBegining); } return(Enums.PlayerState.Idle); }
public Enums.PlayerState update(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty) { currState = getNextState[((int)currState)](hit, animDone, direction, type, handEmpty);//gets te next Enums.PlayerState return(currState); }
//this is used to prevent the player character from doing any thing while dead private static Enums.PlayerState Dead(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty) { return(Enums.PlayerState.Dead); }
private static Enums.PlayerState Hit(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty) { hold += UnityEngine.Time.deltaTime; if (hold > .4f) { hold = 0; if (die) { return(Enums.PlayerState.Dead); } return(Enums.PlayerState.Idle); } return(Enums.PlayerState.Hit); }
//The following methods control when and how you can transition between states private Enums.PlayerState Idle(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { if (hit) { return(Enums.PlayerState.Hit); } if (!handEmpty && CustomInput.BoolFreshPress(CustomInput.UserInput.UseCard, playerNumber)) { switch (type) { case Enums.CardTypes.SwordVert: return(Enums.PlayerState.VertiSwingHeavy); case Enums.CardTypes.SwordHori: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.NaginataVert: return(Enums.PlayerState.VertiSwingHeavy); case Enums.CardTypes.NaginataHori: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.HammerVert: return(Enums.PlayerState.VertiSwingHeavy); case Enums.CardTypes.HammerHori: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.ThrowLight: return(Enums.PlayerState.ThrowLight); case Enums.CardTypes.ThrowMid: return(Enums.PlayerState.ThrowMid); case Enums.CardTypes.Shoot: return(Enums.PlayerState.Shoot); case Enums.CardTypes.ChiAttack: return(Enums.PlayerState.ChiAttack); case Enums.CardTypes.ChiStationary: return(Enums.PlayerState.ChiStationary); case Enums.CardTypes.Error: return(Enums.PlayerState.ChiAttack); case Enums.CardTypes.Fan: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.Kanobo: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.Tanto: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.Wakizashi: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.Tonfa: return(Enums.PlayerState.HoriSwingMid); case Enums.CardTypes.BoStaff: return(Enums.PlayerState.HoriSwingMid); } } if (CustomInput.BoolFreshPress(CustomInput.UserInput.Attack, playerNumber)) { return(Enums.PlayerState.BasicAttack); } if (direction != Enums.Direction.None) { return(Enums.PlayerState.MoveBegining); } if (CustomInput.BoolFreshPress(CustomInput.UserInput.Taunt, playerNumber)) { float chance = UnityEngine.Random.Range(0f, 1f); if (chance < .225f) { return(Enums.PlayerState.TauntPointPoint); } else if (chance < .45f) { return(Enums.PlayerState.TauntThumbsDown); } else if (chance < .675f) { return(Enums.PlayerState.TauntWrasslemania); } else if (chance < .9f) { return(Enums.PlayerState.TauntYaMoves); } else { return(Enums.PlayerState.TauntGokuStretch); } } return(Enums.PlayerState.Idle); }
private Enums.PlayerState TauntYaMoves(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { if (hit) { return(Enums.PlayerState.Hit); } if (animDone) { return(Enums.PlayerState.Idle); } return(Enums.PlayerState.TauntYaMoves); }
private Enums.PlayerState ChiStationary(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { if (hit) { return(Enums.PlayerState.Hit); } if (animDone) { return(Enums.PlayerState.Idle); } return(Enums.PlayerState.ChiStationary); }
private Enums.PlayerState BasicAttack(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { if (hit) { return(Enums.PlayerState.Hit); } if (CustomInput.BoolFreshPress(CustomInput.UserInput.Attack, playerNumber)) { hold = 1; } if (animDone) { if (hold == 0) { return(Enums.PlayerState.Idle); } hold = 0; return(Enums.PlayerState.BasicAttack); } return(Enums.PlayerState.BasicAttack); }
//this is used to prevent the player character from doing any thing while dead private Enums.PlayerState Dead(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { return(Enums.PlayerState.Dead); }
public Enums.PlayerState update(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { switch (currState) { case Enums.PlayerState.Idle: currState = Idle(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.MoveBegining: currState = MoveBegining(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.MoveEnding: currState = MoveEnding(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.Hit: currState = Hit(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.Dead: currState = Dead(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.BasicAttack: currState = BasicAttack(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.HoriSwingMid: currState = HoriSwingMid(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.VertiSwingHeavy: currState = VertiSwingHeavy(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.ThrowLight: currState = ThrowLight(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.ThrowMid: currState = ThrowMid(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.Shoot: currState = Shoot(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.ChiAttack: currState = ChiAttack(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.ChiStationary: currState = ChiStationary(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.TauntGokuStretch: currState = TauntGokuStretch(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.TauntPointPoint: currState = TauntPointPoint(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.TauntThumbsDown: currState = TauntThumbsDown(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.TauntWrasslemania: currState = TauntWrasslemania(hit, animDone, direction, type, handEmpty, playerNumber); break; case Enums.PlayerState.TauntYaMoves: currState = TauntYaMoves(hit, animDone, direction, type, handEmpty, playerNumber); break; } return(currState); }
private void SetElement(string type) { try { Enums.Element element = (Enums.Element)Enum.Parse(typeof(Enums.Element), type); if (Enum.IsDefined(typeof(Enums.Element), element) | element.ToString().Contains(",")) this.element = element; else { this.element = Enums.Element.None; Debug.LogError("Unable to resolve " + type + " to a type. Setting " + name + " to type None."); } } catch (ArgumentException) { this.type = Enums.CardTypes.Error; Debug.LogError("Unable to resolve " + type + " to a type. Setting " + name + " to type Error."); } }
private static Enums.PlayerState TauntWrasslemania(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { if (hit) { return(Enums.PlayerState.Hit); } if (animDone) { return(Enums.PlayerState.Idle); } return(Enums.PlayerState.TauntWrasslemania); }
private static Enums.PlayerState VertiSwingHeavy(bool hit, bool animDone, Enums.Direction direction, Enums.CardTypes type, bool handEmpty, int playerNumber) { if (hit) { return(Enums.PlayerState.Hit); } if (animDone) { return(Enums.PlayerState.Idle); } return(Enums.PlayerState.VertiSwingHeavy); }
void Update() { if (Managers.GameManager.State == Enums.GameStates.Battle && !stun) { if (paused) { paused = false; anim.speed = animSpeed; } if (CustomInput.BoolFreshPress(CustomInput.UserInput.Up, playerNumber)) { if (currentNode.panelAllowed(Enums.Direction.Up, Type)) { directionToMove = Enums.Direction.Up; nextNode = currentNode.Up; } } else if (CustomInput.BoolFreshPress(CustomInput.UserInput.Down, playerNumber)) { if (currentNode.panelAllowed(Enums.Direction.Down, Type)) { directionToMove = Enums.Direction.Down; nextNode = currentNode.Down; } } else if (CustomInput.BoolFreshPress(CustomInput.UserInput.Left, playerNumber)) { if (currentNode.panelAllowed(Enums.Direction.Left, Type)) { directionToMove = Enums.Direction.Left; nextNode = currentNode.Left; } } else if (CustomInput.BoolFreshPress(CustomInput.UserInput.Right, playerNumber)) { if (currentNode.panelAllowed(Enums.Direction.Right, Type)) { directionToMove = Enums.Direction.Right; nextNode = currentNode.Right; } } else { directionToMove = Enums.Direction.None; } //get next state currState = machine.update(hit, animDone, directionToMove, hand.GetCurrentType(), hand.Empty(), playerNumber); //state clean up if (prevState != currState) { doOnce = false; animDone = false; attack = false; basicAttack = false; move = false; hit = false; if (weapon != null) { Destroy(weapon); } anim.SetInteger("state", (int)currState); } if (invunTimer > 0) { if (renderTimer > renderTime) { render = !render; renderTimer = 0; //GetComponent<Renderer>().enabled = render; } hit = false; renderTimer += Time.deltaTime; invunTimer -= Time.deltaTime; } else { //GetComponent<Renderer>().enabled = true; invun = false; } //run state switch (currState) { case Enums.PlayerState.Idle: Idle(); break; case Enums.PlayerState.MoveBegining: MoveBegining(); break; case Enums.PlayerState.MoveEnding: MoveEnding(); break; case Enums.PlayerState.Hit: Hit(); break; case Enums.PlayerState.Dead: Dead(); break; case Enums.PlayerState.BasicAttack: BasicAttack(); break; case Enums.PlayerState.HoriSwingMid: CardAnim(); break; case Enums.PlayerState.VertiSwingHeavy: CardAnim(); break; case Enums.PlayerState.ThrowLight: CardAnim(); break; case Enums.PlayerState.ThrowMid: CardAnim(); break; case Enums.PlayerState.Shoot: CardAnim(); break; case Enums.PlayerState.ChiAttack: CardAnim(); break; case Enums.PlayerState.ChiStationary: CardAnim(); break; case Enums.PlayerState.TauntGokuStretch: Taunt(); break; case Enums.PlayerState.TauntPointPoint: Taunt(); break; case Enums.PlayerState.TauntThumbsDown: Taunt(); break; case Enums.PlayerState.TauntWrasslemania: Taunt(); break; case Enums.PlayerState.TauntYaMoves: Taunt(); break; } if (move) { move = false; currentNode.clearOccupied(); currentNode = nextNode; currentNode.Owner = (this); transform.position = currentNode.transform.position; } if (useCard) { if (!hand.Empty()) { Enums.CardTypes type = hand.GetCurrentType(); if (type == Enums.CardTypes.SwordHori || type == Enums.CardTypes.SwordVert) { weapon = Instantiate(Katana); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.NaginataHori || type == Enums.CardTypes.NaginataVert) { weapon = Instantiate(Naginata); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.HammerHori || type == Enums.CardTypes.HammerVert) { weapon = Instantiate(Hammer); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.Fan) { weapon = Instantiate(Fan); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.Kanobo) { weapon = Instantiate(Kanobo); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.Tanto) { weapon = Instantiate(Tanto); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.Wakizashi) { weapon = Instantiate(Wakizashi); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.Tonfa) { weapon = Instantiate(Tonfa); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } else if (type == Enums.CardTypes.BoStaff) { weapon = Instantiate(BoStaff); weapon.transform.position = weaponPoint.position; weapon.transform.localScale = weaponPoint.localScale; weapon.transform.parent = weaponPoint; weapon.transform.localEulerAngles = new Vector3(0, 0, 0); } useCard = false; hand.UseCurrent(this); CardUIEvent(); } } if (basicAttack) { basicAttack = false; Weapons.Hitbox b = Instantiate(bullet); AddElement.AddElementByEnum(b.gameObject, (Enums.Element)Random.Range(0, 5), true); b.Owner = this.gameObject; b.transform.position = Direction == Enums.Direction.Left ? currentNode.Left.transform.position : currentNode.Right.transform.position; b.CurrentNode = Direction == Enums.Direction.Left ? currentNode.Left : currentNode.Right; b.Direction = Direction; } if (damage > 0 && takeDamage) { takeDamage = false; TakeDamage(damage, damageElement); damage = 0; damageElement = Enums.Element.None; } prevState = currState; } else { if (!paused) { animSpeed = anim.speed; anim.speed = 0; paused = true; } if (stun) { if ((stunTimer += Time.deltaTime) > stunTime) { stunTimer = 0f; stun = false; } } } }