public void PlayClip(string clipName, DefAction OnFinish = null, ClipFinishCondtion condtion = null) { GameTools.Log("PlayClip : " + clipName); ClipInfo clip = GetClipInfoByName(clipName); GameTools.Log("PlayClip Flag : " + clip.ConFlag); string clipFlag = clip.ConFlag; animator.SetBool(clipFlag, true); curClipName = clip.Name; WaitForSec(clip.Duration, () => { if (OnFinish != null) { if (condtion != null) { if (condtion()) { OnFinish(); } } else { OnFinish(); } } }); }
public override void Release(DefAction OnSuccess = null, DefAction OnFinish = null) { targettState = curState = BaseSkillState.Attack01; //播放角色动作 base.Release(OnSuccess, () => { OnReleaseFinish(OnFinish); }); //控制猪脚瞬间移动 WaitForSec(delayTime, () => { FastMove(); }); AudioManager.Instance.PlayAudio(AudioManager.Man_Comm_Attack01); //控制特效显示 PlayEffect(effectGOFirst); //计算伤害值 WaitForSec(DelayCalAttack01DamageTime, () => { AttackItem attack = new AttackItem(); attack.Damage = Damage; attack.Type = AttackType.Normal; attack.Stage = AttackStage.First; attack.AttackDir = AttackDir.Forward; PlayerFightCtrl.Instance.CalculateDamage(attack); }); }
public override void Release(DefAction OnSuccess = null, DefAction OnFinish = null) { base.Release(OnSuccess, OnFinish); WaitForSec(delayTime01, () => { LoadEffect(effect01); }); WaitForSec(damageTime01 / 2, () => { AttackItem attack = GetSkill03AttackItem(); attack.Damage = Damage; attack.Stage = AttackStage.First; CalDamage(attack); }); WaitForSec(delayTime02, () => { LoadEffect(effect02); }); WaitForSec(damageTime02 / 2, () => { AttackItem attack = GetSkill03AttackItem(); attack.Damage = Damage * 2; attack.Stage = AttackStage.Second; CalDamage(attack); }); WaitForSec(delayTime03, () => { LoadEffect(effect03); }); WaitForSec(damageTime03 / 2, () => { AttackItem attack = GetSkill03AttackItem(); attack.Damage = Damage * 3; attack.Stage = AttackStage.Third; CalDamage(attack); }); }
public void Connect(ServerEntity server, DefAction callBack) { this.connectCallBack = callBack; StateObj state = new StateObj(); state.OnConnect = OnConnect; clientSocket.ConnectServer(server.ip, server.port, state); }
private IEnumerator _WaitForSec(float sec, DefAction action) { yield return(new WaitForSeconds(sec)); if (action != null) { action(); } }
public static Delegate DefAction(LuaFunction func) { DefAction d = () => { func.Call(); }; return(d); }
/* Initialization of scripts, begin in player offense mode. */ private void Start() { player = GameObject.Find("Person"); defScript = Camera.main.GetComponent <Defense>(); defActScript = player.GetComponent <DefAction>(); attackScript = Camera.main.GetComponent <Attack>(); Instantiate(enemyPrefab, new Vector3(5, 0, 4), Quaternion.Euler(new Vector3(-90, 0, -145))); defScript.enabled = false ^ DefTestMode; defActScript.enabled = false ^ DefTestMode; attackScript.enabled = true ^ DefTestMode; }
public void ShowLoadinge(DefAction OnLoadingSuccess = null) { if (OnLoadingSuccess != null) { this.OnLoadingSuccess = OnLoadingSuccess; } isLoading = false; this.operation = null; curProgress = 0; slider.value = 0; isLoading = true; gameObject.SetActive(true); }
public void ResetState() { isMoving = false; isAbleMove = false; curState = MoveState.Idle; velocity = Vector3.zero; if (navMeshAgent != null) { navMeshAgent.enabled = false; } target = Vector3.zero; this.OnArrive = null; this.Condition = null; }
public void ShowLoadinge(AsyncOperation operation, DefAction OnLoadingSuccess = null, string desc = "") { if (OnLoadingSuccess != null) { this.OnLoadingSuccess = OnLoadingSuccess; } slider.value = 0; isLoading = true; gameObject.SetActive(true); if (operation != null) { this.operation = operation; } LDesc.text = desc; }
public virtual void Release(DefAction OnSuccess = null, DefAction OnFinish = null) { if (!isInit) { return; } string skillClipName = "Skill_" + skillInfo.Pos; GameTools.Log("Start ReleaseSkill"); animMgr.PlayClip(skillClipName, OnFinish, null); if (OnSuccess != null) { OnSuccess(); } }
public void Update() { if (eventQueue.Count > 0) { for (int i = 0; i < eventQueue.Count; i++) { HandleMsg(eventQueue[i]); } } eventQueue.Clear(); if (connectCallBack != null && isConnect) { connectCallBack(); connectCallBack = null; } }
public void MoveToTarget(Vector3 target, DefAction OnArrive, ArriveCondition condition = null) { if (navMeshAgent == null) { GameTools.LogError("Navigation in null!!!"); return; } navMeshAgent.enabled = true; isAbleMove = true; this.target = target; this.OnArrive = OnArrive; this.Condition = condition; navMeshAgent.destination = target; curState = MoveState.MovingTarget; navMeshAgent.speed = speed; }
private void ReleaseAttack02(DefAction OnFinish) { AudioManager.Instance.PlayAudio(AudioManager.Man_Comm_Attack02); GameTools.LogError("ReleaseAttack02222"); animMgr.PlayClip(attack02Clip, () => { OnReleaseFinish(OnFinish); }); WaitForSec(DelayCalAttack02DamageTime, () => { AttackItem attack = new AttackItem(); attack.Damage = Damage * 2; attack.Type = AttackType.Normal; attack.Stage = AttackStage.Second; attack.AttackDir = AttackDir.Forward; PlayerFightCtrl.Instance.CalculateDamage(attack); }); }
public virtual void GetAttackDamage(AttackItem attack, DefAction OnFinish = null) { ShowBloodAndSound(); switch (attack.Stage) { case AttackStage.First: GetAttack01Damage(attack, OnFinish); break; case AttackStage.Second: GetAttack02Damage(attack, OnFinish); break; case AttackStage.Third: GetAttack03Damage(attack, OnFinish); break; } }
public void TweenPos(Vector3 targetPos, float duration, bool worldSpace, DefAction OnFinish = null) { //TweenPosition tp = GetComponent<TweenPosition>(); //if (tp != null) //{ // tp.worldSpace = worldSpace; // tp.from = transform.position; // tp.to = targetPos; // tp.SetOnFinished(() => // { // if (OnFinish != null) OnFinish(); // tp.onFinished.Clear(); // }); // tp.PlayForward(); //} //else //{ // tp = TweenPosition.Begin(gameObject, duration, targetPos, worldSpace); // tp.SetOnFinished(() => // { // //if (gameObject.GetComponent<TweenPosition>() != null) UnityEngine.Object.Destroy(gameObject.GetComponent<TweenPosition>()); // if (OnFinish != null) OnFinish(); // tp.onFinished.Clear(); // }); //} if (Enclosure.Instance.isInside(targetPos)) { TweenPosition tweenPos = TweenPosition.Begin(this.gameObject, duration, targetPos, true); tweenPos.AddOnFinished( () => { if (OnFinish != null) { OnFinish(); } if (tweenPos != null) { Object.Destroy(tweenPos); } } ); } }
public override void Release(DefAction OnSuccess = null, DefAction OnFinish = null) { base.Release(OnSuccess, OnFinish); AudioManager.Instance.PlayAudio(AudioManager.Skill_Two); WaitForSec(effect01Time, () => { LoadEffect(effect01); }); WaitForSec(effect02Time, () => { LoadEffect(effect02); }); WaitForSec(effect03Time, () => { LoadEffect(effect03); }); WaitForSec(effect04Time, () => { LoadEffect(effect04); }); WaitForSec(attackTime, () => { AttackItem attack = new AttackItem(); attack.Damage = Damage; attack.Type = AttackType.Skill02; attack.AttackDir = AttackDir.Around; attack.Range = 5; PlayerFightCtrl.Instance.CalculateDamage(attack); }); }
public void ReleaseSkill(int skillID, DefAction OnSuccess = null, DefAction OnFinish = null, DefAction OnFail = null) { GameTools.Log("ReleaseSkill"); SkillItem skill = GetSkillItemBySkillID(skillID); if (skill == null || !isAbleReleaseSkill()) { if (OnFail != null) { OnFail(); } return; } SkillBase skillCtrl = GetSkillCtrlBySkillID(skillID); if (skillCtrl != null) { skillCtrl.Release(OnSuccess, OnFinish); } }
public override void Release(DefAction OnSuccess = null, DefAction OnFinish = null) { base.Release(OnSuccess, OnFinish); //播放声音 AudioManager.Instance.PlayAudio(AudioManager.SKill_One); //播放特效 WaitForSec(Effect01Time, () => { PlayEffect(effect01); }); WaitForSec(Effect02Time, () => { PlayEffect(effect02); }); WaitForSec(Effect03Time, () => { PlayEffect(effect03); }); //计算伤害 WaitForSec(CalDamageTime, () => { AttackItem attack = new AttackItem(); attack.Damage = Damage; attack.Type = AttackType.Skill01; attack.AttackDir = AttackDir.Around; attack.Range = 5; PlayerFightCtrl.Instance.CalculateDamage(attack); }); }
public void OnReleaseFinish(DefAction OnFinish) { if (targettState == curState) { ResetState(); OnFinish(); return; } switch (curState) { case BaseSkillState.Idle: ResetState(); break; case BaseSkillState.Attack01: if (targettState > curState) { ReleaseAttack02(OnFinish); curState = BaseSkillState.Attack02; } break; case BaseSkillState.Attack02: if (targettState > curState) { ReleaseAttack03(OnFinish); curState = BaseSkillState.Attack03; } break; default: ResetState(); OnFinish(); break; } }
static int Connect(IntPtr L) { LuaScriptMgr.CheckArgsCount(L, 3); NetworkMgr obj = (NetworkMgr)LuaScriptMgr.GetUnityObjectSelf(L, 1, "NetworkMgr"); ServerEntity arg0 = (ServerEntity)LuaScriptMgr.GetNetObject(L, 2, typeof(ServerEntity)); DefAction arg1 = null; LuaTypes funcType3 = LuaDLL.lua_type(L, 3); if (funcType3 != LuaTypes.LUA_TFUNCTION) { arg1 = (DefAction)LuaScriptMgr.GetNetObject(L, 3, typeof(DefAction)); } else { LuaFunction func = LuaScriptMgr.GetLuaFunction(L, 3); arg1 = () => { func.Call(); }; } obj.Connect(arg0, arg1); return(0); }
protected virtual void GetAttack01Damage(AttackItem attack, DefAction OnFinish = null) { //Move Posotion AttackMoveBack(attack.JumpHeight, attack.JumpHeight); }
public void WaitForSec(float sec, DefAction action) { StartCoroutine(_WaitForSec(sec, action)); }
protected virtual void GetAttack03Damage(AttackItem attack, DefAction OnFinish = null) { }
public virtual void GetDamage(AttackItem attack, DefAction OnFinish = null) { // GameTools.LogError(attack.Type + "====> "+attack); handleDict[attack.Type](attack, OnFinish); CalDamage(attack); }
public virtual void GetSkillDamage01(AttackItem attack, DefAction OnFinish = null) { ShowBloodAndSound(); }
public virtual void GetSkillDamage02(AttackItem attack, DefAction OnFinish = null) { //Damage Effect ReleaseREffect(holyFireEffect, holyFirePos); }
public virtual void GetSkillDamage03(AttackItem attack, DefAction OnFinish = null) { ShowBloodAndSound(); AttackMoveBack(attack.JumpHeight, attack.JumpHeight); }
public void MoveTarget(GameObject go, DefAction OnArrive, ArriveCondition condition = null) { MoveToTarget(go.transform.position, OnArrive, condition); }