Beispiel #1
0
    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();
    }
Beispiel #4
0
    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;
    }
Beispiel #5
0
 public void Initialize(CharacterAttackData data)
 {
     _animationLogic = data.AnimationLogic;
 }