void AddStepUpdate() { lastAddTime += Time.deltaTime; if (lastAddTime < addTime) { return; } int count = steps.Count - 1; for (int i = count; i >= 0; i--) { if (steps[i] == null) { steps.RemoveAt(i); } } if (steps.Count >= maxCount) { return; } Rect gamerect = InGameManager.GetInstance().GetGameRect(); float y = InGameManager.GetInstance().role.transform.position.y + 2; float rand = Random.Range(0f, gamerect.y + gamerect.height - y - 2); InGameBaseObj obj = AddItem("InGameStep", y + rand); steps.Add(obj); lastAddTime = 0; }
public void TouchMove(Vector3 pos) { float rate = -(pos.x - Screen.width / 2) / 300f; if (rate > 1.5f) { rate = 1.5f; } if (rate < -1.5f) { rate = -1.5f; } float rotate = rate * 45; InGameRole role = InGameManager.GetInstance().role; for (int i = 0; i < objList.Count; i++) { InGameBaseObj obj = objList[i]; if (obj == null || obj.IsDie()) { continue; } float disrate = Mathf.Abs(role.transform.position.z - obj.transform.position.z) / (GameConst.GAME_STEP_INTERVAL * 3); disrate = 1 - Mathf.Min(disrate, 1f); obj.transform.rotation = Quaternion.Euler(new Vector3(0, 0, rotate * disrate)); } }
bool HitGameObj(InGameBaseObj baseobj) { if (baseobj.instanceId == this.instanceId) { return(false); } if (baseobj.GetObjType() != enObjType.character) { return(false); } if (!source.IsEnemy(baseobj)) { return(false); } InGameBaseCharacter character = (InGameBaseCharacter)baseobj; character.Hurt(source, source.GetAtkForce(), source.propertys.GetProperty(enCharacterProperty.comborate), source.propertys.GetProperty(enCharacterProperty.comboval), false); Debug.Log(baseobj.gameObject.name); SetDie(true); return(true); }
void AddSawUpdate() { addSawTime -= Time.deltaTime; if (addSawTime > 0) { return; } addSawTime = Random.Range(MAX_ADD_SAW_TIME, MAX_ADD_SAW_TIME * 2); Rect gamerect = InGameManager.GetInstance().GetGameRect(); float rand = Random.Range(0f, 1f); string name; if (rand < 0.5f) { name = "InGameSaw"; } else { name = "InGameElastic"; } InGameBaseObj item = AddItem(name, gamerect.y + gamerect.height + 1); float randScale = Random.Range(1f, 1.8f); item.transform.localScale = new Vector3(randScale, randScale, 1); }
public override bool HandleFuntion(InGameBaseObj obj) { Debug.Log("MapGateway HandleFuntion :targetid : " + targetid); GameGlobal.selLevelConfId = targetid; (new EventChangeScene(GameSceneManager.SceneTag.Game)).Send(); return(false); }
public void Update() { AddStepUpdate(); for (int i = 0; i < objList.Count; i++) { InGameBaseObj obj = objList[i]; if (obj.IsDie()) { delList.Add(obj); } else { obj.ObjUpdate(); } } for (int i = 0; i < delList.Count; i++) { InGameBaseObj obj = delList[i]; objList.Remove(obj); obj.Die(); } delList.Clear(); if (addList.Count > 0) { objList.AddRange(addList); addList.Clear(); } }
public static void SetObjPos(GameObject obj, Vector3 pos) { InGameBaseObj ingameobj = obj.GetComponent <InGameBaseObj>(); if (ingameobj == null) { return; } if (ingameobj.GetObjType() != InGameBaseObj.enObjType.map) { return; } Vector2 mappos = GameCommon.GetMapPos(pos); obj.transform.position = GameCommon.GetWorldPos(mappos); MapObjConf conf = ConfigManager.GetEditorMapObjConfManager().map[ingameobj.confid]; if (conf == null) { return; } GameCommon.SetObjZIndex(obj, conf.depth); return; //MapEditor me = GameObject.Find("levelOption").transform.GetComponent<MapEditor>(); //if (me == null) //{ // EditorUtility.DisplayDialog("ERROR", "Cant't find the 'levelOption' !!", "ENTRY"); // return; //} }
public virtual void StartAction(InGameBaseObj target, Vector3 targetPos, int dis) { astarDis = dis; Vector3 _targetMapPos = GameCommon.GetMapPos(targetPos); if (_targetMapPos == targetMapPos) { return; } Vector2 startPos = GameCommon.GetMapPos(parent.transform.position); MazeMapManager gameMap = InGameManager.GetInstance().inGameLevelManager.gameMap; List <Vector2> _path = astar.StratAStar( gameMap.astarArray, startPos, GameCommon.GetMapPos(targetPos), dis); if (_path.Count <= 0) { return; } HandlePath(startPos, _path); path = _path; isaction = true; this.target = target; this.targetPos = targetPos; targetMapPos = _targetMapPos; atkTime = 0; state = ActionState.move; }
//对敌人造成了伤害,在这里处理吸血等状态 public void AtkHurt(InGameBaseObj source, int val) { float pro = propertys.GetProperty(enCharacterProperty.steallife) / 100f; float stealval = val * pro; this.ChangeLife(source, (int)stealval, false); }
public InGameBaseObj AddObj(string id) { InGameBaseObj objscript = MSBaseObject.CreateById(id) as InGameBaseObj; addList.Add(objscript); return(objscript); }
public void AddScores(int score, bool iscombo, InGameBaseObj source) { int s = score; //if(iscombo){ // combo++; // scores += combo; // s = combo; //}else { // combo = 0; // scores += score; //} scores += score; InGameManager.GetInstance().inGameUIManager.AddScores(source.transform.position, s, scores, iscombo, true); //InGameManager.GetInstance().inGameColorManager.SetColor((float)score * (iscombo ? 1f /* ((float)combo * 0.3f)*/ : 0.1f )); //Vector3[] ps = { // source.transform.position, // new Vector3(0,source.transform.position.y + source.transform.position.x /*Random.Range(8f,15f)*/,0), // InGameManager.GetInstance().inGameUIManager.gamePadManager.comboLabelPos - // new Vector3(0,Random.Range(8f,15f),0), // InGameManager.GetInstance().inGameUIManager.gamePadManager.comboLabelPos // }; //ComboFlyObj.Create(ps); }
public void TouchToPlane(Vector3 pos) { Ray ray = InGameManager.GetInstance().gamecamera.ScreenPointToRay(pos); RaycastHit hitInfo; if (Physics.Raycast(ray, out hitInfo, 200, LayerMask.GetMask("GameObj"))) { GameObject gameObj = hitInfo.collider.gameObject; InGameBaseObj obj = gameObj.GetComponent <InGameBaseObj>(); if (obj != null) { (new EventData(EventID.EVENT_GAME_TOUCH_OBJ)).AddData(obj).Send(); return; } } if (Physics.Raycast(ray, out hitInfo, 200, LayerMask.GetMask("TouchPlane"))) { GameObject gameObj = hitInfo.collider.gameObject; Vector3 hitPoint = hitInfo.point; (new EventGameTouchGround(hitPoint)).Send(); } }
// public override bool Hurt(InGameBaseObj obj) { MapObjConf conf = ConfigManager.mapObjConfManager.map[this.confid]; InGameManager.GetInstance().inGameLevelManager.gameMap.DelMapObj(transform.position, conf); transform.position = new Vector3(-9999, -9999, 0); return(true); }
public virtual void StopAction() { isaction = false; parent.SetAnimatorState(InGameBaseCharacter.AnimatorState.Idle, 1); atkTime = 0; target = null; targetMapPos = Vector3.zero; state = ActionState.non; }
//private void OnCollisionEnter(Collision collision) //{ // HitObj(collision.gameObject); //} //private void OnTriggerEnter(Collider collision) //{ // HitObj(collision.gameObject); //} void HitObj(GameObject obj) { InGameBaseObj baseobj = obj.GetComponent <InGameBaseObj>(); if (baseobj == null) { return; } HitGameObj(baseobj); }
public InGameBaseObj AddObj(InGameBaseObj.enObjType type) { GameObject obj = Resources.Load(InGameBaseObj.ObjResourceName[(int)type]) as GameObject; obj = MonoBehaviour.Instantiate(obj); InGameBaseObj objscript = obj.GetComponent <InGameBaseObj>(); objList.Add(objscript); objscript.Init(); objscript.ObjUpdate(); return(objscript); }
public InGameBaseObj AddSkill(int skill, enMSCamp camp) { gameObjInstanceId++; SkillConf conf = ConfigManager.skillConfManager.dataMap[skill]; GameObject obj = Resources.Load(conf.filepath) as GameObject; obj = InGameManager.Instantiate(obj); InGameBaseObj objscript = obj.GetComponent <InGameBaseObj>(); objscript.Init(gameObjInstanceId, skill, camp); addList.Add(objscript); return(objscript); }
private void OnTriggerEnter(Collider other) { InGameBaseObj obj = other.transform.GetComponent <InGameBaseObj>(); if (obj == null) { Debug.Log("cant find InGameBaseObj : " + other.gameObject.name); return; } if (obj.mytype == enObjType.role) { isstop = true; childObj.GetComponent <Renderer>().material = m_light; } }
public InGameBaseObj AddObj(int objid, enMSCamp camp) { gameObjInstanceId++; CharacterConf conf = ConfigManager.characterConfManager.dic[objid]; GameObject obj = Resources.Load(conf.prefabName) as GameObject; obj = MonoBehaviour.Instantiate(obj); InGameBaseObj objscript = obj.GetComponent <InGameBaseObj>(); objscript.Init(gameObjInstanceId, objid, camp); addList.Add(objscript); return(objscript); }
public override void StartAction(InGameBaseObj target, Vector3 targetPos, int dis) { if (state == AtkState.atkbegin || state == AtkState.atkend) { return; } base.StartAction(target, targetPos, dis); atkTime = 0; //Vector3 v = (target.transform.position - parent.transform.position).normalized; //parent.transform.forward = v; state = AtkState.move; }
public float GetAtkDis(InGameBaseObj target) { //float ret = boxSize.x + 0.3f; //if(target.GetObjType() == enObjType.character){ // ret += ((InGameBaseCharacter)target).boxSize.x; // ret += this.conf.atkdis; //} if (target.camp == enMSCamp.en_camp_item) { return((float)target.ActionDistance() + 0.2f); } float ret = this.conf.atkdis + 1.3f; return(ret); }
InGameBaseObj AddItem(string id, float height) { InGameBaseObj item = InGameManager.GetInstance().inGameLevelManager.AddObj(id); float randScale = 1.8f - InGameManager.GetInstance().gameScale * 1f; item.transform.localScale = new Vector3(randScale, randScale, 1); Rect gamerect = InGameManager.GetInstance().GetGameRect(); //add item item.transform.position = new Vector3(gamerect.x + Random.Range(0, gamerect.width - 2) + 1, height + randScale / 2); item.Init(); return(item); }
static void ForeachObjAndSave(GameObject obj) { foreach (Transform child in obj.transform) { InGameBaseObj gameobj = child.GetComponent <InGameBaseObj>(); if (gameobj == null) { continue; } gameobj.parentid = child.parent.GetInstanceID(); gameobj.instanceId = child.GetInstanceID(); msobjlist.Add(gameobj); ForeachObjAndSave(child.gameObject); } }
public void Revive() { for (int i = 0; i < objList.Count; i++) { InGameBaseObj obj = objList[i]; if (Mathf.Abs(obj.transform.position.z - (InGameManager.GetInstance().role.targetz + GameConst.GAME_STEP_INTERVAL)) < 0.5f) { obj.transform.position = new Vector3(0f, obj.transform.position.y, obj.transform.position.z); obj.transform.localScale = new Vector3(4f, obj.transform.localScale.y, obj.transform.localScale.z); } else if (Mathf.Abs(obj.transform.position.z - InGameManager.GetInstance().role.targetz) < 0.5f) { obj.SetDie(); } } }
private void OnTriggerEnter(Collider other) { if (hit) { return; } Debug.Log(other.gameObject.name); InGameBaseObj obj = other.transform.GetComponent <InGameBaseObj>(); if (obj == null) { Debug.Log("cant find InGameBaseObj : " + other.gameObject.name); return; } if (obj.mytype == enObjType.step) { //if(!jump.isfull) JumpFinished(); hit = true; //combo if (Mathf.Abs(transform.position.x - obj.transform.position.x) < GameConst.comboDis && Mathf.Abs(transform.position.z - obj.transform.position.z) < GameConst.comboDis) { GameObject effect = Resources.Load("Prefabs/Effect/ShowEnemy") as GameObject; effect = Instantiate(effect); effect.transform.position = obj.transform.position; effect.transform.localScale = new Vector3(obj.transform.localScale.x, obj.transform.localScale.z, obj.transform.localScale.y); combo += 1; AudioManager.Instance.Play("sound/down_combo"); } else { combo = 0; AudioManager.Instance.Play("sound/down_normal"); } int val = 1 + combo; scores += val; InGameManager.GetInstance().inGameUIManager.AddScores(transform.position, val, scores, true); } }
/// <summary> /// Hurt the specified source, val, comborate, comboval and strike. /// </summary> /// <returns>The hurt.</returns> /// <param name="source">Source.</param> /// <param name="val">Value.</param> /// <param name="comborate">Comborate.</param> /// <param name="comboval">Comboval.</param> /// <param name="strike">是否穿透攻击.</param> public bool Hurt(InGameBaseObj source, int val, float comborate, float comboval, bool strike) { float overval = val; if (UnityEngine.Random.Range(0f, 100f) < propertys.GetProperty(enCharacterProperty.avoid)) { ChangeLifeLabel.CreateChangeLifeLabel(transform.position + new Vector3(0, this.boxSize.y + 0.2f, 0), Color.yellow, "闪避"); return(false); } bool iscombo = false; if (UnityEngine.Random.Range(0f, 100f) < comborate) { overval += overval * comboval / 100f; iscombo = true; } if (!strike) { float armor = propertys.GetProperty(enCharacterProperty.armor) * 0.06f; armor = (armor / (armor + 1)); overval -= overval * armor; if (overval < 0) { overval = 0; } } float returnval = overval * (propertys.GetProperty(enCharacterProperty.returnhurt) / 100f); overval -= returnval; ((InGameBaseCharacter)source).ChangeLife(this, -(int)returnval, false); ((InGameBaseCharacter)source).AtkHurt(source, (int)overval); EventData.CreateEvent(EventID.EVENT_GAME_CHARACTER_HURT). AddData(source, this, -(int)overval).Send(); return(ChangeLife(source, -(int)Math.Ceiling(overval), iscombo)); }
public List <InGameBaseObj> GetObjListByDistance(Vector2 pos, float dis) { getList.Clear(); for (int i = 0; i < objList.Count; i++) { InGameBaseObj obj = objList[i]; if (obj.IsDie()) { continue; } if (Vector2.Distance(obj.transform.position, pos) < dis) { getList.Add(obj); } } return(getList); }
public void AddScores(int score, bool iscombo, InGameBaseObj source) { int s = score; if (iscombo) { combo++; scores += combo; s = combo; } else { combo = 0; scores += score; } InGameManager.GetInstance().inGameUIManager.AddScores(source.transform.position, s, scores, iscombo, true); InGameManager.GetInstance().inGameColorManager.SetColor((float)score * (iscombo ? 1f * ((float)combo * 0.3f) : 0.1f)); }
public override void HandleEvent(EventData resp) { if (role.IsDie()) return; switch (resp.eid) { case EventID.EVENT_GAME_TOUCH_GROUND: EventGameTouchGround eve = (EventGameTouchGround)resp; role.StartRun(eve.pos); break; case EventID.EVENT_GAME_TOUCH_OBJ: EventData touchobje = (EventData)resp; InGameBaseObj obj = (InGameBaseObj) touchobje.sUserData[0]; if (obj.instanceId != role.instanceId && !obj.IsDie()) { role.StartAtk(obj); } break; case EventID.EVENT_UI_EQUIP: int instanceid = int.Parse(resp.sUserData[0].ToString()); AddEquip(instanceid); EventData.CreateEvent(EventID.EVENT_UI_REFRESH_PACKAGEUI).Send(); break; case EventID.EVENT_UI_DELEQUIP: int delinstanceid = int.Parse(resp.sUserData[0].ToString()); UserDataManager.instance.DelEquip(delinstanceid); EventData.CreateEvent(EventID.EVENT_UI_REFRESH_PACKAGEUI).Send(); break; case EventID.EVENT_UI_UNEQUIP: int unequipinstanceid = int.Parse(resp.sUserData[0].ToString()); CancelEquip(unequipinstanceid); break; case EventID.EVENT_DATA_REFRESHPROPERTY: role.ResetAllProperty(); break; } }
public void Init() { EventManager.Register(this, EventID.EVENT_TOUCH_DOWN, EventID.EVENT_TOUCH_MOVE); addCount = (int)(GameConst.GAME_STEP_INTERVAL * 7); addStepDis += GameConst.GAME_STEP_INTERVAL; for (int i = 0; i < 1; i++) { InGameBaseObj obj = AddObj(InGameBaseObj.enObjType.step); obj.transform.position = new Vector3(0, 0, addStepDis); addStepDis += GameConst.GAME_STEP_INTERVAL; InGameStep step = (InGameStep)obj; step.RandScale(4, 0); } AddStepUpdate(); }