//-------------------------------------------------------------------------------------------------------------- protected override void initComponents() { base.initComponents(); mAvatar = addComponent(Typeof <CharacterComponentModel>(), true) as CharacterComponentModel; mStateMachine = addComponent(Typeof <CharacterStateMachine>(), true) as CharacterStateMachine; mDecisionTree = addComponent(Typeof <CharacterDecisionTree>()) as CharacterDecisionTree; }
void OnEnable() { ClassInit("Default"); FSM = GetComponent <CharacterStateMachine>(); FSM.owner = this; OnBattleStart(); }
// Update is called once per frame void Update() { switch (BattleState) { case PerformAction.IDLE: break; case PerformAction.PROCESSING_TURN: BaseClass turnPerformer = TurnOrder[0].Attacker; CharacterStateMachine FSM = turnPerformer.GetFSM(); if (TurnOrder[0].IsAoE || TurnOrder[0].TargetAlly) { FSM.Target = TurnOrder[0].Attacker.transform; } else { FSM.Target = TurnOrder[0].Target.transform; } FSM.currentState = CharacterStateMachine.TurnState.ACTION; battleState = PerformAction.PERFORM_ACTION; break; case PerformAction.PERFORM_ACTION: // waiting for player animation and calculate damage break; case PerformAction.ACTION_ENDED: break; } }
public override void initComponents() { base.initComponents(); mAvatar = addComponent <CharacterComponentModel>(true); mStateMachine = addComponent <CharacterStateMachine>(true); mDecisionTree = addComponent <CharacterDecisionTree>(); }
public virtual void Init <T>(T data) where T : CharacterData { SetData(data); GetData().entity = this; StateMachine = new CharacterStateMachine(this); StateMachine.SetCurrentState <CharacterIdleState>(); }
public Character(CharacterStateMachine sm) : base() { _instance = this; _stateMachine = sm; _previousFrameInfo = new CharacterInfo(); _currentInfo = new CharacterInfo(); }
//---------------------------------------------------------------------------- /// <summary> /// 타겟에게 나의 능력치를 기반하여 HP를 감소시킨다 /// </summary> void Enter_AttackState() { MonsterStatus myAttribute = gameObject.GetComponent <MonsterStatus>(); if (ProcessDeadState(myAttribute)) { return; } //애니메이션 실행 Playerstatus targetAttribute = Target.GetComponent <Playerstatus>(); targetAttribute.current_hp -= myAttribute.damage; Debug.Log("Attack : " + gameObject.name + "->" + Target.name); Debug.Log("Hp : " + targetAttribute.current_hp.ToString()); CharacterStateMachine targetStateMachine = Target.GetComponent <CharacterStateMachine>(); targetStateMachine.SetState(State.DAMAGED); //대상이 죽은 경우는 타겟 해제 if (targetAttribute.current_hp <= 0) { Target = null; } StartCoroutine("TransStateToIdle", myAttribute.Atk_delay); }
private void LoadCharacter(int characterIndex, Transform objectTransform) { PlayableCharacter playCharacter = CharacterParty.charactersParty[characterIndex]; GameObject characterGO = Instantiate(playCharacter.prefab); characterGO.transform.position = objectTransform.position; characterGO.transform.rotation = objectTransform.rotation; PlayableCharacter character = characterGO.GetComponent <PlayableCharacter>(); character.charStats = playCharacter.charStats; character.currentEquipment = playCharacter.currentEquipment; character.magicAttacks = playCharacter.magicAttacks; character.attacksList = playCharacter.attacksList; GameObject charStatsPanel = Instantiate(characterBattleStatsPrefab, characterBattleStatsPanel, false); CharacterStateMachine stateMachine = characterGO.GetComponent <CharacterStateMachine>(); CharacterSelected button = charStatsPanel.GetComponentInChildren <CharacterSelected>(); button.characterPrefab = characterGO; Transform stateMachineTransform = charStatsPanel.transform.Find(progressBarName); stateMachine.progressBar = stateMachineTransform.GetComponent <Image>(); stateMachine.nameText = charStatsPanel.transform.Find(nameTextName).GetComponent <Text>(); stateMachine.healthText = charStatsPanel.transform.Find(HPTextName).GetComponent <Text>(); stateMachine.magicText = charStatsPanel.transform.Find(MPTextName).GetComponent <Text>(); charatersList.Add(playCharacter); HeroesInBattle.Add(characterGO); }
public CharacterMachineState(CharacterStateMachine stateMachine) { Machine = stateMachine; control = Machine.Character.GetComponentInFamily <CharacterControlInput>(); animator = Machine.Character.GetComponentInFamily <CharacterAnimator>(); motion = Machine.Character.GetComponentInFamily <Rigidbody2DMotion>(); }
public LogicEngine() { ImgUtils.Init(); KeyUtils.WindowToSendKeysIn = Constants.KO_WINDOW; _gos = new List <GameObject>(); _initTimer = new CTimer(); _initTimer.Interval = START_DELAY * 1000; _initTimer.AutoReset = false; _updateTimer = new CTimer(); _updateTimer.Elapsed += OnUpdate; _updateTimer.AutoReset = false; _updateTimer.Interval = UPDATE_DELAY * 1000; GameObject go = new GameObject(); CharacterStateMachine sm = new CharacterStateMachine(); Character character = new Character(sm); DirComponent direction = new DirComponent(); ScreenPosition screenPos = new ScreenPosition(); go.AddComponent(screenPos); go.AddComponent(sm); go.AddComponent(direction); go.AddComponent(character); _gos.Add(go); _sendStart = true; }
public CharacterBaseState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, CharacterStateMachine stateMachine) { _characterModel = characterModel; _inputModel = inputModel; _animationController = animationController; _stateMachine = stateMachine; }
public CharacterState(Character character, CharacterStateMachine characterStateMachine, CharacterData characterData, PlayerInputs playerInputs, string animBoolName) { this.character = character; this.characterStateMachine = characterStateMachine; this.characterData = characterData; this.playerInputs = playerInputs; this.animBoolName = animBoolName; }
public Timer( float targetTime, CharacterStateMachine stateMachine, States state) { if(targetTime == 0) targetTime = 180; this.targetTime = targetTime; this.stateMachine = stateMachine; this.state = state; StartTimer(); }
protected virtual void InitStateMachine() { _stateMachine = gameObject.AddComponent <CharacterStateMachine>(); _stateMachine.Debug = true; _stateMachine.SetDelegateForState(CharacterState.PRE_INIT, Init); _stateMachine.SetDelegateForState(CharacterState.INIT_MOVE, InitMove); _stateMachine.SetDelegateForState(CharacterState.MOVE_TO, MoveTo); _stateMachine.SetDelegateForState(CharacterState.MOVE_COMPLETE, OnMoveComplete); }
public FallOnGroundState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) { Type = StateType.NotActive; IsTargeting = false; IsAttacking = false; CanExit = false; CanBeOverriden = true; }
public DancingState(CharacterModel characterModel, InputModel inputModel, CharacterAnimationController animationController, CharacterStateMachine stateMachine) : base(characterModel, inputModel, animationController, stateMachine) { Type = StateType.Default; IsTargeting = false; IsAttacking = false; CanExit = false; CanBeOverriden = true; }
private void Awake() { characterStateMachine = new CharacterStateMachine(); characterData = new CharacterData(); playerInputs = GetComponent <PlayerInputs>(); idleState = new IdleState(this, characterStateMachine, characterData, playerInputs, ""); moveState = new MoveState(this, characterStateMachine, characterData, playerInputs, ""); }
protected virtual void InitStateMachine() { _stateMachine = gameObject.AddComponent <CharacterStateMachine>(); _stateMachine.Debug = true; _stateMachine.SetDelegateForState(CharacterState.PRE_INIT, Init); _stateMachine.SetDelegateForState(CharacterState.SEARCHING_FOR_TARGET, FindNewTarget); _stateMachine.SetDelegateForState(CharacterState.INIT_ATTACK, InitAttack); _stateMachine.SetDelegateForState(CharacterState.ATTACKING, DoAttack); _stateMachine.SetDelegateForState(CharacterState.ATTACK_COMPLETE, OnAttackComplete); }
public void Init(Character owner) { CharacterStateMachine state = null; for (UnitStateIndex index = UnitStateIndex.Idle; index < UnitStateIndex.Max; ++index) { Util.CreateInstanceToString <CharacterStateMachine>(ref state, string.Format("{0}State", index.ToString())); state.Init(index, owner); m_states[(int)index] = state; } }
public virtual void Init() { if (ReferencePlayerObject != null) { _playerChar = ((GameObject)Network.Instantiate (ReferencePlayerObject, PlayerSpawnPoint, Quaternion.identity, 0)).GetComponent<CharacterStateMachine> (); InitCharacter (_playerChar); } VerifyUseOculus (); if (_referenceCamControlToUse != null) { _currentCamControl = ((GameObject)GameObject.Instantiate (_referenceCamControlToUse.gameObject)).GetComponent<CameraControl> (); } }
public override void resetProperty() { base.resetProperty(); mBaseData = null; mAvatar = null; mRigidBody = null; mStateMachine = null; mDecisionTree = null; mGUID = 0; mAnimationLenghtList.Clear(); }
public State( CharacterStateMachine animatorFSM, Settings settings, NavMeshAgent agent, Transform target ) { this.animatorFSM = animatorFSM; this.settings = settings; this.target = target; this.agent = agent; }
// Update is called once per frame void Update() { switch (characterState) { case (CharacterStateMachine.WAIT): // idle break; case (CharacterStateMachine.CHOOSEACTION): if (stunnedFor > 0) { Debug.Log("Character " + charName + " is stunned and skips this turn."); StartCoroutine(BSM.UIM.ShowFadeingMessage("Character " + charName + " is stunned and skips this turn.")); characterState = CharacterStateMachine.ENDTURN; } else { Debug.Log("Turn of character: " + this.charName); ActivateMovableTiles(); //handle player input regarding actions to be taken by character BSM.MSM.currentMouseState = MouseStateManager.MouseStateMachine.CHOOSEACTION; characterState = CharacterStateMachine.WAIT; } break; case (CharacterStateMachine.AFTERACTION): if (currentActionPoints == 0) { Debug.Log("Character " + charName + " ran out of Action Points! Turn ended!"); characterState = CharacterStateMachine.ENDTURN; } else { characterState = CharacterStateMachine.CHOOSEACTION; } break; case (CharacterStateMachine.MOVING): //idle while moving break; case (CharacterStateMachine.ENDTURN): DeActivateNeighboringTiles(); UpdateCharactersStats(); Debug.Log(charName + " has ended his turn!"); characterState = CharacterStateMachine.WAIT; BSM.CharactersByInitiative.Remove(this); //RemoveAt (0); BSM.currentState = BattlefieldStateManager.BattlefieldStateMachine.PERFORMTURN; break; } }
private void Awake() { _stateMachine = GetComponent <CharacterStateMachine>(); _camera = _stateMachine.GetCamera(); // Create the objects used for UI pullLines = Instantiate(pullLineUIObject, this.transform); forwardLines = Instantiate(forwardLineUIObject, this.transform); Transform grabRingParent = GameObject.Find("Canvas").transform; grabRing = Instantiate(grabRingUIObject, grabRingParent); }
void Start() { _collider = new CharacterCollider(GetComponentInChildren <Collider2D>(), groundLayer); _stateMachine = new CharacterStateMachine(this); _input = new KeyboardCharacterInput(); _animator = GetComponentInChildren <Animator>(); _spriteRenderer = GetComponentInChildren <SpriteRenderer>(); _gravity = (2 * jumpHeight) / Mathf.Pow(timeToApex, 2); _jumpVelocity = Mathf.Sqrt(2 * _gravity * jumpHeight); _rigidbody = new CharacterRigidbody(_gravity, transform, _collider); }
public void characterDies() { var rotationVector = transform.rotation.eulerAngles; rotationVector.z = 270; this.transform.rotation = Quaternion.Euler(rotationVector); BSM.CharactersByInitiative.Remove(this); BSM.UIM.updateOrderQueue(BSM.CharactersByInitiative); if ((BSM.checkIfAlliesLeft(BSM.battlefield.characters) && BSM.checkIfEnemiesLeft(BSM.battlefield.characters)) == false) { this.characterState = CharacterStateMachine.ENDTURN; } //this.characterArmature.animation.Stop (); // swap to death animation to be played once in the future }
/// <summary> /// Initalize the states and add them /// </summary> protected override void Start() { base.Start(); StateMachine = new CharacterStateMachine(this); falling = new Falling(); grounded = new Grounded(); motion = new Motion(); cutscene = new Cutscene(); // Add states StateMachine.AddState(StateName.Falling, falling); StateMachine.AddState(StateName.Grounded, grounded); StateMachine.AddState(StateName.Motion, motion); StateMachine.AddState(StateName.Cutscene, cutscene); }
void Start() { animator = GetComponent <Animator>(); stateMachine = GetComponent <CharacterStateMachine>(); controller = GetComponent <CharacterController>(); //Player setup stuff speed = parameters.playerConfig.speed; attackHitPoints = parameters.playerConfig.attackDamage; attackRange = parameters.playerConfig.attackRange; attackAngle = parameters.playerConfig.attackAngle; //Dash stuff dashRefillRate = parameters.playerConfig.dashRefillRate; dashLength = parameters.playerConfig.dashLength; numberOfDashesAvailable = parameters.playerConfig.numberOfDashesAvailable; maxDashAvailable = parameters.playerConfig.numberOfDashesAvailable; initialSpeed = speed; }
public override void execute() { var character = mReceiver as Character; CharacterStateMachine stateMachine = character.getStateMachine(); // 移除状态组时,认为状态是强行被中断 if (mStateGroup != null) { stateMachine.removeStateInGroup(mStateGroup, true, mParam); return; } // 移除指定状态时认为状态是正常结束 if (mState != null) { stateMachine.removeState(mState, false, mParam); } }
public override void resetProperty() { base.resetProperty(); mBaseData = null; mAvatar = null; mRigidBody = null; mStateMachine = null; mDecisionTree = null; mGUID = 0; mAnimationLenghtList.Clear(); mCharacterType = null; mCharacterLoadedCallback = null; mModelPath = null; mAnimationControllerPath = null; mUserData = null; mModelTag = 0; // mModelLoadCallback不重置 // mModelLoadCallback = null; }
public void InitCharacter(CharacterStateMachine character) { // if (ReferenceModel != null) { // character.ModelObject = (GameObject)GameObject.Instantiate (ReferenceModel); // character.ModelObject.transform.parent = _playerChar.transform; // character.ModelObject.transform.localPosition = Vector3.zero; // character.ModelObject.transform.localRotation = Quaternion.identity; // } if (OnPlayerReady != null) { OnPlayerReady (); } }
public virtual void Setup(BaseEquipment weapon, MovesetType type) { _weapon = weapon; _user = weapon.User; _userState = _user.CharState; }
public static void AddFlinch(CharacterStateMachine stateMachine, float time ) { }
/// <summary> /// Initializes the values associated to this character instance. </summary> protected virtual void Awake() { //Unity Components _coordinates = GetComponent<Transform>(); _controller = GetComponent<CharacterController>(); _rigidbody = GetComponent<Rigidbody>(); //Basic Character Components charAnimation = GetComponent<Animator> (); if (charAnimation != null) charAnimation.SetLayerWeight (1, 1); charStats = GetComponent<CharacterStats> (); charMoveSet = GetComponent<CharacterMovesetModule> (); oldCharAnimation = transform.Find ("Renderer").GetComponent<SkinnedMeshRenderer>().material; if (oldCharAnimation == null) Debug.LogError (name+"'s material is null"); // GetComponentInChildren<MeshRenderer> ().material; //Add specialized character components switch (charType) { case CharacterType.Player: charState = gameObject.AddComponent <CharacterStateMachine> (); //dictates character's moveset and availble actions charInput = gameObject.AddComponent <PlayerInput> (); //dictates characters focus and behaviour break; case CharacterType.Enemy: charState = gameObject.AddComponent <EnemyStateModule> (); charInput = gameObject.AddComponent <AIInput> (); break; default: break; } }
public static void RemoveState( CharacterStateMachine stateMachine, States state ) { stateMachine.RemoveState(state); }
protected virtual void Start() { userState = user.CharState; scalingBuff.SetScaling(user); availableActions = activeMoveset.Moveset; }
void Start() { stateMachine = characterAccessor.StateMachine; }
public CharacterDashState(CharacterStateMachine stateMachine) : base(stateMachine) { }
public PlayerTalkingState(CharacterStateMachine stateMachine) : base(stateMachine) { }
public void InitCharacter(CharacterStateMachine character) { if (OnPlayerReady != null) { OnPlayerReady (); } }
// Use this for initialization void Start() { stateMachine = gameObject.GetComponent<CharacterStateMachine> (); rigidbody = GetComponent<Rigidbody>(); //learning state machine placement stateMachine.AddState (States.NO_FLINCH, 2, null, null , printEnd); }
public virtual void Init() { if (myNet) { myNet.RPC("SetUseCardBoard",RPCMode.AllBuffered,_UseCardBoard); } PlayerSpawnPoint = new Vector3(Random.Range(-9,6),0f,Random.Range(-9,9)); if (ReferencePlayerObject != null) { _playerChar = ((GameObject)Network.Instantiate (ReferencePlayerObject, PlayerSpawnPoint, Quaternion.identity, 0)).GetComponent<CharacterStateMachine> (); InitCharacter (_playerChar); } VerifyUseCardBoard (); if (_referenceCamControlToUse != null) { _currentCamControl = ((GameObject)GameObject.Instantiate (_referenceCamControlToUse.gameObject)).GetComponent<CameraControl> (); } //WP.Controller.ControllerUtility.OnControllerModeChanged += OnControllerModeChanged; }