Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        _ai.AutoMove();
        _ai.AutoFight(Time.deltaTime);
        DelayAttrAction((short)(Time.deltaTime * 1000));
        cameraMove();
        DrawCritical();
        if (target && target.isDead())
        {
            //chgTraget(null);
        }

        if (Input.GetKeyUp(KeyCode.Alpha9))
        {
            JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, 999);
            fightMSG._target = target.ID;
            NetMgr.getSingleton().sendMsg(fightMSG);
        }

        // norma attack
        if (Input.GetKeyUp(KeyCode.Space) && target != null)
        {
            JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, (short)ENUM_SKILL_TYPE.SKILL_NORMAL);
            fightMSG._target = target.ID;
            NetMgr.getSingleton().sendMsg(fightMSG);
        }

        // magic attack
        if (Input.GetKeyUp(KeyCode.Alpha1) && target != null)
        {
            if (mp >= 10)
            {
                JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, (short)ENUM_SKILL_TYPE.SKILL_TRAIL);
                fightMSG._target = target.ID;
                NetMgr.getSingleton().sendMsg(fightMSG);
            }
            else
            {
                GameDebug.LogError("Use skill:NOT ENOUGH MP.");
            }
        }
        if (Input.GetKeyUp(KeyCode.Alpha2) && target != null)
        {
            if (mp >= 30)
            {
                JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, (short)ENUM_SKILL_TYPE.SKILL_AREA_TARGET);
                fightMSG._target = target.ID;
                NetMgr.getSingleton().sendMsg(fightMSG);
            }
            else
            {
                GameDebug.LogError("Use skill:NOT ENOUGH MP.");
            }
        }
        if (Input.GetKeyUp(KeyCode.Alpha3))
        {
            if (mp >= 30)
            {
                JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, (short)ENUM_SKILL_TYPE.SKILL_AREA_SELF);
                NetMgr.getSingleton().sendMsg(fightMSG);
            }
            else
            {
                GameDebug.LogError("Use skill:NOT ENOUGH MP.");
            }
        }
        if (Input.GetKeyUp(KeyCode.Alpha4))
        {
            if (mp >= 30 && _island != Map.invalidPos)
            {
                JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, (short)ENUM_SKILL_TYPE.SKILL_AREA_ISLAND);
                fightMSG._param01 = (short)_island._x;
                fightMSG._param02 = (short)_island._z;
                NetMgr.getSingleton().sendMsg(fightMSG);
            }
            else
            {
                GameDebug.LogError("Use skill:NOT ENOUGH MP. not click island");
            }
        }
        if (Input.GetKeyUp(KeyCode.Alpha5))
        {
            if (mp >= 50)
            {
                JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, (short)ENUM_SKILL_TYPE.SKILL_SHILED);
                fightMSG._target = ID;
                NetMgr.getSingleton().sendMsg(fightMSG);
            }
            else
            {
                GameDebug.LogError("Use skill: not enough mp");
            }
        }
        if (Input.GetKeyUp(KeyCode.Alpha6))
        {
            if (mp >= 50)
            {
                JFPackage.PAG_FIGHT fightMSG = new JFPackage.PAG_FIGHT(ID, -1, (short)ENUM_SKILL_TYPE.SKILL_DYNCBLOCK);
                fightMSG._target = ID;
                NetMgr.getSingleton().sendMsg(fightMSG);
            }
            else
            {
                GameDebug.LogError("Use skill: not enough mp");
            }
        }
        // select target
        _island = MousePickUp.pickIsland(_island);
        Creature c = MousePickUp.pick(target);

        chgTraget(c);
    }
Esempio n. 2
0
    //creates a tower based on a type
    public void CreateTower(ElementTypes type)
    {
        switch (type)
        {
        case ElementTypes.Lightning:
            stats          = new BaseTower(1, 1, 5, ElementTypes.Lightning);
            attackMod      = .1f;
            attackSpeedMod = 2;
            rangeMod       = 1;
            break;

        case ElementTypes.Fire:
            stats          = new BaseTower(5, 5, 5, ElementTypes.Fire);
            attackMod      = 2;
            attackSpeedMod = 10;
            rangeMod       = 1;
            break;

        case ElementTypes.Whimsical:
            stats               = new BaseTower(2, 3, 10, ElementTypes.Whimsical);
            attackMod           = .5f;
            attackSpeedMod      = 6;
            rangeMod            = 2;
            multiEnemiesInRange = new List <Transform>();
            whims_maxTargets    = Mathf.FloorToInt(stats.Range / 3f);
            break;

        case ElementTypes.Order:
            stats               = new BaseTower(2, 2, 5, ElementTypes.Order);
            attackMod           = .5f;
            attackSpeedMod      = 4;
            rangeMod            = .5f;
            ord_pulseObject     = transform.GetChild(3).gameObject;
            multiEnemiesInRange = new List <Transform>();
            break;

        case ElementTypes.Nature:
            stats               = new BaseTower(1.5f, 4, 5, ElementTypes.Nature);
            attackMod           = .25f;
            attackSpeedMod      = 8;
            rangeMod            = 1;
            nature_attackNumber = 0;
            break;

        case ElementTypes.Earth:
            stats          = new BaseTower(1, 2, 5, ElementTypes.Earth);
            attackMod      = .5f;
            attackSpeedMod = 4;
            rangeMod       = 1;
            break;

        case ElementTypes.Chaos:
            stats          = new BaseTower(0, 1, 0, ElementTypes.Chaos);
            attackMod      = 0;
            attackSpeedMod = 0;
            rangeMod       = 0;
            break;

        case ElementTypes.Water:
            stats          = new BaseTower(0, 1, 3, ElementTypes.Water);
            attackMod      = 0;
            attackSpeedMod = 0;
            rangeMod       = 1;
            break;

        default:
            Debug.Log("default ocurred in CreateTower switch, f**k");
            stats          = new BaseTower(5, 5, 5, ElementTypes.Error);
            attackMod      = .1f;
            attackSpeedMod = 10;
            rangeMod       = 1;
            break;
        }

        //set base range of tower
        rangeView = transform.GetChild(0).gameObject;
        ChangeTowerRange(stats.Range);
        towerCol = transform.GetComponent <BoxCollider2D>();

        mousePickUp = GetComponent <MousePickUp>();

        enemyInRange = null;

        //attack speed set up
        timeSinceAttack = stats.AttackSpeed;

        //tower UI
        towerUI = transform.GetChild(1).gameObject;
        towerUI.GetComponent <Canvas>().worldCamera = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <Camera>();
        towerInfoOn = false;
        infoSet     = false;

        //currency manager reference
        currency          = GameObject.FindGameObjectWithTag("money").GetComponent <CurrencyManager>();
        attackUpgradeCost = 2;
        ASUpgradeCost     = 2;
        rangeUpgradeCost  = 2;
        ASUpgradeNumber   = 1;
    }