// 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); }
//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; }