public void Initialize(JoystickLogic joystick) { var model = _modelContainer.GetChild(0); _animationLogic = model.GetComponent <CharacterAnimationLogic>(); // subscribe to joystick var movementData = new CharacterMovementData { Joystick = joystick, MovementMaxSpeed = _config.MovementMaxSpeed, OnCanMoveCheck = CheckCanMove, JoystickData = new JoystickEventData(), CharacterRigidbody = GetComponent <Rigidbody>(), AnimationLogic = _animationLogic }; _movementLogic.Initialize(this, movementData); var pod = _podContainer.GetChild(0); _podController = pod.GetComponent <PodController>(); var podData = new PodControllerData { Owner = transform }; _podController.Initialize(podData); var reachData = new CharacterReachData { OnMeeleTrigger = new CollisionTriggerData { TriggerEnterAction = OnMeleeRangeEnter, TriggerExitAction = OnMeleeRangeExit }, OnDodgeTrigger = new CollisionTriggerData { }, OnDistanceTrigger = new CollisionTriggerData { TriggerEnterAction = OnDistanceRangeEnter, TriggerExitAction = OnDistanceRangeExit } }; _reachLogic.Initialize(reachData); var attackData = new CharacterAttackData { AnimationLogic = _animationLogic }; _attackLogic.Initialize(attackData); }
/// <summary> /// Reset state to prevent bugs when changing levels / respawning (may need to split into 2) /// Also refill resources /// </summary> private void ResetState() { evade_enqueued = false; invincible = false; is_cloaked = false; was_hit_this_frame = false; CleanupAdrenalineChanges(); health = health_max; shield = shield_max; // TODO: interrupt everything, stop animations, reset all that //reset state from climbing, etc. if (Referencer.instance.player.GetComponent <CharacterStats>().current_master_state == CharEnums.MasterState.ClimbState) { Referencer.instance.player.GetComponent <MagGripUpgrade>().StopClimbing(); } if (Referencer.instance.player.GetComponent <CharacterStats>().current_master_state == CharEnums.MasterState.RappelState) { Referencer.instance.player.GetComponent <GrapplingHook>().ResetState(); } input_manager = GetComponent <IInputManager>(); UnfreezePlayer(); char_anims = this.gameObject.GetComponent <CharacterAnimationLogic>(); char_anims.Reset(); // hide charged shot Animator charge_animator = charge_up_ball.GetComponent <Animator>(); if (charge_animator != null) { if (charge_animator.isActiveAndEnabled) { charge_animator.SetBool("Charging", false); charge_animator.SetBool("Charged", false); charge_up_ball.SetActive(false); } } // reset movement char_stats = this.gameObject.GetComponent <CharacterStats>(); char_stats.velocity = new Vector2(0.0f, 0.0f); // reset overlay if (overlay != null) { overlay.HideOverlay(); } }
// Use this for initialization public virtual void Start() { char_stats = GetComponent <CharacterStats>(); input_manager = GetComponent <IInputManager>(); char_anims = GetComponent <CharacterAnimationLogic>(); sprite_renderer = transform.Find("Sprites").GetComponent <SpriteRenderer>(); applied_moves = new Queue <Vector3>(); jump_grace_period = false; jump_grace_period_timer = JUMP_GRACE_PERIOD_TIME; fallthrough = false; SetFacing(); }
public void Initialize(CharacterController controller, CharacterMovementData data) { _joystick = data.Joystick; data.JoystickData.OnTouchDown = OnMoveStart; data.JoystickData.OnTouchUp = OnMoveEnd; data.JoystickData.OnDrag = OnMoveEvent; data.JoystickData.OnClick = OnClick; _joystick.InitializeEvents(data.JoystickData); _canMoveCheck = data.OnCanMoveCheck; _maxSpeed = data.MovementMaxSpeed; _characterRigidbody = data.CharacterRigidbody; _animationLogic = data.AnimationLogic; OnDisconnectEvents = _joystick.DisconnectEvents; _controller = controller; _initialized = true; }
public void Initialize(CharacterAttackData data) { _animationLogic = data.AnimationLogic; }