Beispiel #1
0
    private void OnTriggerEnter2D(Collider2D other)
    {
        //string tag = other.gameObject.tag;
        //if (tag != "Player") {
        MoverController movable = other.transform.parent.gameObject.GetComponent <MoverController>();

        if (movable != null)
        {
            Transform otherTransform = other.transform.parent.transform;
            //Vector2 dir = transform.up.normalized;
            Vector3 dir = (otherTransform.position - transform.parent.position).normalized;
            movable.ExternalForce = dir * projectileForce;
        }
        IDamageable damageable = (IDamageable)other.transform.parent.gameObject.GetComponent(typeof(IDamageable));

        if (damageable != null)
        {
            DamageInfo damageInfo = new DamageInfo();
            damageInfo.damage = 10;
            damageable.Damage(damageInfo);
        }
        //}

        //string tag = other.gameObject.tag;
        //if (tag == "enemy") {
        //    PoolObject poolObject = other.gameObject.GetComponent<PoolObject>();
        //    if (poolObject != null) {
        //        poolObject.Destroy();
        //    } else {
        //        Destroy(other.gameObject);
        //    }
        //}
    }
Beispiel #2
0
 public MoverStateAtRest(
     MoverController mover,
     Settings settings)
 {
     _settings = settings;
     _mover    = mover;
 }
Beispiel #3
0
    private void Awake()
    {
        mover = GetComponent <MoverController>();

        Reset();
        eventManager = Toolbox.GetOrAddComponent <EventManager>();
    }
Beispiel #4
0
    void Start()
    {
        moverController = MoverController.Instance;

        pc          = GetComponent <PlayerChar>();
        audioSource = GetComponent <AudioSource>();
    }
Beispiel #5
0
    void Start()
    {
        controller = MoverController.Instance;
        gm         = GameObject.FindGameObjectWithTag("GameManager").GetComponent <GameManager>();

        agent = GetComponent <NavMeshUser>();

        agent.SetTarget(exit.position);
        state = AIState.idle;

        origWalkingSpeed = walkingSpeed * walkingFactor;
    }
Beispiel #6
0
    private void OnCollisionEnter2D(Collision2D other)
    {
        string tag = other.gameObject.tag;

        if (tag == "Player")
        {
            MoverController movable = other.gameObject.GetComponent <MoverController>();
            if (movable != null)
            {
                movable.ExternalForce = moverController.Direction * pushbackForce;
            }
            IDamageable damageable = (IDamageable)other.gameObject.GetComponent(typeof(IDamageable));
            if (damageable != null)
            {
                damageable.Damage(damageInfo);
            }
        }
    }
Beispiel #7
0
    private void Awake()
    {
        if (instance != null && instance != this)
        {
            Destroy(gameObject);
        }
        else
        {
            instance = this;
        }

        mover = GetComponent <MoverController>();

        currentHp = maxHp;
        CanRoll   = true;
        FaceDir   = FACE_DOWN;

        eventManager = Toolbox.GetOrAddComponent <EventManager>();
    }
Beispiel #8
0
    private void Awake()
    {
        moverController = GetComponent <MoverController>();

        hitbox = transform.Find("Hitbox").GetComponent <BoxCollider2D>();

        poolManager = Toolbox.GetOrAddComponent <PoolManager>();
        poolManager.CreatePool(bloodSplatter, 150);

        damageInfo        = new DamageInfo();
        damageInfo.damage = 10;


        fsm           = GetComponent <Animator>();
        enemy         = GetComponent <Enemy>();
        enemyAnimator = GetComponent <EnemyAnimator>();
        enemyAudio    = GetComponent <EnemyAudio>();

        frameInfo = new EnemyFrameInfo();
    }
    public void FillUnitFields(GameObject unit)
    {
        IdentityController uid  = unit.GetComponent <IdentityController>();
        MoverController    umov = unit.GetComponent <MoverController>();
        DetectorController udet = unit.GetComponent <DetectorController>();
        HealthController   uhp  = unit.GetComponent <HealthController>();

        name = uid.GetLocalizedName();
        InputField namefield = NameVal.GetComponent <InputField> ();

        namefield.text = name;
        InputField currentHealth = CurHealthVal.GetComponent <InputField> ();

        curhp = uhp.GetCurrentHealth();
        currentHealth.text = uhp.GetCurrentHealth().ToString();
        InputField maxHealth = MaxHealthVal.GetComponent <InputField> ();

        maxhp          = uhp.GetMaxHealth();
        maxHealth.text = uhp.GetMaxHealth().ToString();
        InputField mov = MoveVal.GetComponent <InputField> ();

        move     = umov.GetIdealMoveRange();
        mov.text = move.ToString();

        InputField surfrange = SurfRadarVal.GetComponent <InputField> ();

        surfrange.text = udet.SurfaceRange.ToString();

        InputField airrange = AirRadarVal.GetComponent <InputField> ();

        airrange.text = udet.AirRange.ToString();

        InputField subrange = SubSonarVal.GetComponent <InputField> ();

        subrange.text = udet.SonarRange.ToString();

        FillWeaponDropdown(unit);
    }
    public void AlterUnitData()
    {
        //		IdentityController uid = currentObject.GetComponent <IdentityController>();
        //		MoverController umov = currentObject.GetComponent <MoverController>();
        //		DetectorController udet = currentObject.GetComponent <DetectorController>();
        //		AttackController uat = currentObject.GetComponent <AttackController>();
        //		HealthController uhp = currentObject.GetComponent <HealthController>();
        IdentityController uid = currentObject.GetComponent(
            ObjectFactoryHelper.DetermineControllerLiveObject(
                "Identity", currentObject)) as IdentityController;
        MoverController umov = currentObject.GetComponent(
            ObjectFactoryHelper.DetermineControllerLiveObject(
                "Mover", currentObject)) as MoverController;
        DetectorController udet = currentObject.GetComponent(
            ObjectFactoryHelper.DetermineControllerLiveObject(
                "Detector", currentObject)) as DetectorController;
        AttackController uat = currentObject.GetComponent(
            ObjectFactoryHelper.DetermineControllerLiveObject(
                "Attack", currentObject)) as AttackController;
        HealthController uhp = currentObject.GetComponent(
            ObjectFactoryHelper.DetermineControllerLiveObject(
                "Health", currentObject)) as HealthController;

        //Debug.Log ("max health at start: " + uhp.GetMaxHealth ());

        Single validator = 0.0f;
        //validate hp input
        string maxhpstring = MaxHealthVal.GetComponent <InputField> ().text;
        bool   maxhpvalid  = Single.TryParse(maxhpstring, out validator);

        float maxhp_event = uhp.GetMaxHealth();

        if (maxhpvalid)
        {
            maxhp_event = Single.Parse(maxhpstring);
            //uhp.SetMaxHealth(maxhp_event);
        }

        string namestring = NameVal.GetComponent <InputField>().text;

        string curhpstring = CurHealthVal.GetComponent <InputField> ().text;
        bool   curhpvalid  = Single.TryParse(curhpstring, out validator);
        float  curhp_event = uhp.GetCurrentHealth();

        if (curhpvalid)
        {
            curhp_event = Single.Parse(curhpstring);
            //uhp.SetCurrentHealth(curhp_event);
        }
        //same for movement
        string movstring = MoveVal.GetComponent <InputField> ().text;
        bool   movvalid  = Single.TryParse(movstring, out validator);
        float  mov_event = umov.GetMoveRange();

        if (movvalid)
        {
            mov_event = Single.Parse(movstring);
            //umov.SetMoveRange(mov_event);
        }

        ////Debug.Log ("max health after: " + uhp.GetMaxHealth ());

        //same for ranges

        string airstring = AirRadarVal.GetComponent <InputField> ().text;
        bool   airvalid  = Single.TryParse(airstring, out validator);

        float airval = 0f;

        if (airvalid)
        {
            airval = Single.Parse(airstring);
        }
        else
        {
            airval = udet.AirRange;
        }

        string surfstring = SurfRadarVal.GetComponent <InputField> ().text;
        bool   surfvalid  = Single.TryParse(surfstring, out validator);
        float  surfval    = 0f;

        if (surfvalid)
        {
            surfval = Single.Parse(surfstring);
        }
        else
        {
            surfval = udet.SurfaceRange;
        }
        string substring = SubSonarVal.GetComponent <InputField> ().text;
        bool   subvalid  = Single.TryParse(substring, out validator);
        float  subval    = 0f;

        if (subvalid)
        {
            subval = Single.Parse(substring);
        }
        else
        {
            subval = udet.SonarRange;
        }

        if (!namestring.Equals(name))
        {
            uid.ThrowNameChangeEvent(namestring);
        }

        uhp.ThrowMaxHealthChangeEvent(maxhp_event);
        uhp.ThrowCurrentHealthChangeEvent(curhp_event);
        umov.ThrowRangeChangeEvent(mov_event);
        udet.ThrowRangeChangeEvent(DetectorController.Event_Air_Change, airval);
        udet.ThrowRangeChangeEvent(DetectorController.Event_Surf_Change, surfval);
        udet.ThrowRangeChangeEvent(DetectorController.Event_Sonar_Change, subval);

        int    index     = WepDropdown.SelectedIndex;
        string comboname = WepDropdown.Items [index].LocalItem.ToString();

        AlterWeaponData(comboname);
    }
Beispiel #11
0
 void Awake()
 {
     Instance = this;
 }
Beispiel #12
0
    private void Update()
    {
        _moveAxis = _player.GetAxis2D("MoveX", "MoveY");

        _hasGrabbableObjectInRange = ObjectGrabber.IsTouching;

        AnimatorDriver.Speed = Mathf.Abs(_horizontalVelocity) / MaxHorizontalVelocity;
        if (_horizontalVelocity < -0.1f)
        {
            AnimatorDriver.transform.localScale = new Vector3(1, 1, -1);
        }
        else if (_horizontalVelocity > 0.1f)
        {
            AnimatorDriver.transform.localScale = new Vector3(1, 1, 1);
        }

        if (_draggingObject != null)
        {
            if (_player.GetButtonUp("Grab") || Vector3.Distance(_draggingObject.transform.position, transform.position) > 3)
            {
                _draggingObject.Release();
                _draggingObject = null;
            }

            return;
        }
        else
        {
            if (_hasGrabbableObjectInRange && _player.GetButton("Grab"))
            {
                foreach (Collider col in ObjectGrabber._touchingColliders)
                {
                    //TODO: These should use inheritence so we only have to look for 1 type!
                    SatelliteController satelliteController = col.GetComponent <SatelliteController>();

                    if (satelliteController != null)
                    {
                        satelliteController.Move(_moveAxis);
                        _moveAxis = Vector2.zero;
                        break;
                    }

                    MoverController moverController = col.GetComponent <MoverController>();

                    if (moverController != null)
                    {
                        moverController.Move(_moveAxis);
                        _moveAxis = Vector2.zero;
                        break;
                    }

                    Draggable draggableObj = col.GetComponent <Draggable>();
                    if (draggableObj != null && !draggableObj.IsBeingDragged)
                    {
                        _draggingObject = draggableObj;
                        _draggingObject.Grab(_rigidbody);
                        break;
                    }
                }
            }
        }

        if (_player.GetButtonDown("Jump"))
        {
            if (CanJump)
            {
                _jumping            = true;
                _jumpFrames         = 3;
                _rigidbody.velocity = new Vector3(_rigidbody.velocity.x, JumpVelocity, _rigidbody.velocity.z);
            }
            else if (_isTouchingWall)
            {
                foreach (Collider col in WallHugger._touchingColliders)
                {
                    Vector3 touchingPosition = col.ClosestPointOnBounds(transform.position);
                    Vector3 normal           = touchingPosition - transform.position;

                    if (Mathf.Abs(normal.x) > Mathf.Abs(normal.y))
                    {
                        _jumping            = true;
                        _jumpFrames         = 3;
                        _horizontalVelocity = -Mathf.Sign(normal.x) * WallJumpVelocity;
                        _rigidbody.velocity = new Vector3(_horizontalVelocity, JumpVelocity, _rigidbody.velocity.z);

                        break;
                    }
                }
            }
        }

        if (_jumping && _player.GetButtonUp("Jump"))
        {
            _jumping            = false;
            _jumpFrames         = 0;
            _rigidbody.velocity = new Vector3(_rigidbody.velocity.x, Mathf.Min(_rigidbody.velocity.y, 0), _rigidbody.velocity.z);
        }
    }