Beispiel #1
0
 void Start()
 {
     status = GetComponent<CharStatus> ();
     jump = GetComponent<CharJump> ();
     rigidBody2D = GetComponent<Rigidbody2D> ();
     input = GameObject.Find ("InputManager").GetComponent<InputManager> ();
 }
Beispiel #2
0
	// Update is called once per frame
	void Update () {
		Vector3 pos = transform.position;

		if (Input.GetKey (KeyCode.W)) {

		} else if (Input.GetKey (KeyCode.S)) {

		}else if (Input.GetKey (KeyCode.A)) {
			horV = -MaxHorSpeed;
		}else if (Input.GetKey (KeyCode.D)) {
			horV = MaxHorSpeed;
		}else if (Input.GetKey (KeyCode.J)) {
		}else if (Input.GetKey (KeyCode.K)) {
			if(status == CharStatus.STAND || status == CharStatus.RUN){
				vertV = MaxVerSpeed;
				status = CharStatus.JUMP;
			}
		}else{
			horV = 0;
		}




		pos.x += horV * Time.deltaTime;
		pos.y += vertV * Time.deltaTime;
		transform.position = pos;

		if (status == CharStatus.JUMP || status == CharStatus.FALL) {
			vertV += g * Time.deltaTime;
		}


	}
Beispiel #3
0
 /// <summary>
 /// 处理左大括号
 /// </summary>
 /// <param name="chr"></param>
 private void ResolveLeftBigParantheses(char chr) {
     switch (csNow) {
         case CharStatus.None:
             if (szName == "") {
                 if (dp == null) {
                     dp = gObj;
                     ((JsonObject)dp).IsObject = true;
                     dp.Children.Clear();
                 } else {
                     throw new Exception("非法字符");
                 }
             } else {
                 dp = dp[GetNormalName(szName)];
                 ((JsonObject)dp).IsObject = true;
             }
             csNow = CharStatus.ObjectName;
             break;
         case CharStatus.ObjectValue:
             if (szValue.StartsWith("\"")) {
                 szValue += chr;
             } else {
                 dp = NewChild();
                 ((JsonObject)dp).IsObject = true;
                 csNow = CharStatus.ObjectName;
             }
             break;
         case CharStatus.ObjectName:
             if (dp.IsArray) {
                 dp = NewChild();
                 ((JsonObject)dp).IsObject = true;
                 csNow = CharStatus.ObjectName;
             } else {
                 throw new Exception("意外的\"" + chr + "\"字符");
             }
             break;
         default:
             throw new Exception("意外的\"" + chr + "\"字符");
     }
 }
 void Start()
 {
     //Change player sprite and display tutorial
     lineRenderer = GetComponent<LineRenderer> ();
     lineRenderer.useWorldSpace = true;
     charStatus = transform.parent.GetComponent<CharStatus> ();
     charEnergy = GameObject.Find("Char").GetComponent<CharEnergy> ();
     input = GameObject.Find ("InputManager").GetComponent<InputManager> ();
 }
 void Start()
 {
     status = GetComponent<CharStatus> ();
     input = GameObject.Find ("InputManager").GetComponent<InputManager> ();
 }
Beispiel #6
0
    public override void HitDamage(int _damage)
    {
        if (!poweroverwhelming)
        {
            Debug.Log(CharStatus.HealthPoint);
            if (CharStatus.SkillLevel [5] < 4)
            {
                if (charAlive)
                {
                    CharStatus.SkillLevel [4] = 3;
                    int chance = (CharStatus.SkillLevel [4]) * 25;
                    int superArmor;
                    superArmor = Random.Range(0, 100);

                    if (CharStatus.HealthPoint > 0)
                    {
                        CharStatus.DecreaseHealthPoint(_damage);

                        if (chance > superArmor)
                        {
                            if (State != CharacterState.Skill1 && State != CharacterState.Skill2 && State != CharacterState.Skill3 && State != CharacterState.Skill4)
                            {
                                CharState((int)CharacterState.HitDamage);
                            }
                            else
                            {
                                //ArmorEffect
                                Debug.Log("in superA");
                                superArmorEffect = Instantiate(Resources.Load <GameObject> ("Effect/MagicionPassive2"), new Vector3(transform.position.x, transform.position.y + 1.0f, transform.position.z), Quaternion.Euler(90, 0, 90)) as GameObject;
                                Destroy(superArmorEffect, 0.5f);
                            }
                        }
                        else
                        {
                            CharState((int)CharacterState.HitDamage);
                        }
                    }
                    else if (CharStatus.HealthPoint <= 0)
                    {
                        CharState((int)CharacterState.Death);
                        charAlive = false;
                    }
                }
            }
            else if (CharStatus.SkillLevel [5] == 4)
            {
                Debug.Log(CharStatus.HealthPoint);
                if (charAlive)
                {
                    if (CharStatus.HealthPoint > 0)
                    {
                        CharStatus.DecreaseHealthPoint(_damage);

                        CharState((int)CharacterState.HitDamage);

                        if (State != CharacterState.Skill1 && State != CharacterState.Skill2 && State != CharacterState.Skill3 && State != CharacterState.Skill4)
                        {
                            CharState((int)CharacterState.HitDamage);
                        }
                    }
                    else if (CharStatus.HealthPoint <= 0)
                    {
                        CharState((int)CharacterState.Death);
                        CharAudio.PlayOneShot(Skill1Sound);

                        charAlive = false;
                    }
                }
            }
        }
    }
 void Start()
 {
     chargeCounter = 0;
     charEnergy = transform.parent.GetComponent<CharEnergy> ();
     status = transform.parent.GetComponent<CharStatus> ();
     input = GameObject.Find ("InputManager").GetComponent<InputManager> ();
 }
Beispiel #8
0
        public void Resolve(string json) {
            dp = null;
            csNow = CharStatus.None;

            nLine = 1;
            nIndex = 0;

            for (int i = 0; i < json.Length; i++) {

                nIndex++;
                char chr = json[i];

                try {
                    switch (chr) {
                        case '{'://左大括号
                            ResolveLeftBigParantheses(chr);
                            break;
                        case '}'://右大括号
                            ResolveRightBigParantheses(chr);
                            break;
                        case '\\':
                            #region [=====斜杠=====]
                            switch (csNow) {
                                case CharStatus.ObjectValue:
                                    if (szValue.StartsWith("\"")) {
                                        csNow = CharStatus.SlashValue;
                                    } else {
                                        throw new Exception("非法的数值字符");
                                    }
                                    break;
                                case CharStatus.SlashValue:
                                    szValue += "\\";
                                    break;
                                default:
                                    throw new Exception("规则外的字符!");
                            }
                            break;
                        #endregion
                        case ':':
                            #region [=====冒号=====]
                            switch (csNow) {
                                case CharStatus.None:
                                    if (szName != "") {
                                        csNow = CharStatus.ObjectValue;
                                    } else { throw new Exception("规则外的字符!"); }
                                    break;
                                case CharStatus.ObjectName:
                                case CharStatus.ObjectNameFinish:
                                    csNow = CharStatus.ObjectValue;
                                    break;
                                case CharStatus.ObjectValue:
                                    if (szValue.StartsWith("\"")) {
                                        szValue += chr;
                                    } else {
                                        throw new Exception("非法字符!");
                                    }
                                    break;
                                default:
                                    throw new Exception("非法字符!");
                            }
                            break;
                        #endregion
                        case '"':
                            #region [=====双引号=====]
                            switch (csNow) {
                                case CharStatus.ObjectName:
                                    if (szName == "") {
                                        szName += "\"";
                                    } else {
                                        if (szName.StartsWith("\"")) {
                                            szName += "\"";
                                            csNow = CharStatus.ObjectNameFinish;
                                        } else {
                                            throw new Exception("规则外的字符!");
                                        }
                                    }
                                    break;
                                case CharStatus.ObjectValue:
                                    if (szValue == "") {
                                        szValue += "\"";
                                    } else {
                                        if (szValue.StartsWith("\"")) {
                                            szValue += "\"";
                                            //纯值模式下直接保存值
                                            if (dp == null) gObj.Value = GetNormalValue(szValue);
                                            csNow = CharStatus.ObjectValueFinish;
                                        } else {
                                            throw new Exception("规则外的字符!");
                                        }
                                    }
                                    break;
                                case CharStatus.SlashValue:
                                    szValue += "\"";
                                    csNow = CharStatus.ObjectValue;
                                    break;
                                case CharStatus.None:
                                    //纯值模式
                                    szValue += chr;
                                    csNow = CharStatus.ObjectValue;
                                    break;
                                default:
                                    throw new Exception("意外的\"" + chr + "\"字符");
                            }
                            break;
                        #endregion
                        case '\r':
                            break;
                        case '\n':
                            ResolveWrap(chr);
                            break;
                        case ','://逗号
                            ResolveComma(chr);
                            break;
                        case '['://左中括号,数组开始
                            ResolveLeftInParantheses(chr);
                            break;
                        case ']'://右中括号,数组结束
                            ResolveRightInParantheses(chr);
                            break;
                        case ' ':
                            #region [=====空格=====]
                            switch (csNow) {
                                case CharStatus.ObjectName:
                                    if (szName != "") {
                                        if (szName.StartsWith("\"")) {
                                            throw new Exception("名称不能包含空格!");
                                        } else {
                                            csNow = CharStatus.ObjectNameFinish;
                                        }
                                    }
                                    break;
                                case CharStatus.ObjectValue:
                                    if (szValue != "") {
                                        if (szValue.StartsWith("\"")) {
                                            szValue += chr;
                                        } else {
                                            csNow = CharStatus.ObjectValueFinish;
                                        }
                                    }
                                    break;
                            }
                            break;
                        #endregion
                        default:
                            switch (csNow) {
                                case CharStatus.ObjectName:
                                    szName += chr;
                                    break;
                                case CharStatus.ObjectValue:
                                    szValue += chr;
                                    break;
                                default:
                                    throw new Exception("规则外的字符!");
                            }
                            break;
                    }
                } catch (Exception ex) {
                    throw new Exception("行 " + nLine + " 位置 " + nIndex + " 字符 \"" + chr + "\"(0x" + ((byte)chr).ToString("X2") + ")," + ex.Message);
                }
            }
        }
Beispiel #9
0
        /// <summary>
        /// 处理逗号
        /// </summary>
        /// <param name="chr"></param>
        private void ResolveComma(char chr) {
            switch (csNow) {
                case CharStatus.ObjectValue:

                    if (szValue.StartsWith("\"")) {
                        szValue += chr;
                    } else {
                        if (dp.IsArray) {
                            SaveArrayObject();
                            csNow = CharStatus.ObjectValue;
                        } else {
                            SaveObject();
                            csNow = CharStatus.ObjectName;
                        }
                    }

                    break;

                case CharStatus.ObjectValueFinish:

                    if (dp.IsArray) {
                        SaveArrayObject();
                        csNow = CharStatus.ObjectValue;
                    } else {
                        SaveObject();
                        csNow = CharStatus.ObjectName;
                    }

                    break;

                case CharStatus.ObjectFinish:
                    csNow = CharStatus.ObjectName;
                    break;

                default:
                    throw new Exception("意外的\"" + chr + "\"字符");
            }
        }
 private void Awake()
 {
     instance = this;
 }
 public void Close()
 {
     gameObject.SetActive(false);
     charStatus = null;
 }
Beispiel #12
0
 public virtual void InitializeCharacterStatus()
 {
     CharStatus = new CharStatus(this);
 }
Beispiel #13
0
 public void SetStatus(CharStatus newStatus) => _status = newStatus;
Beispiel #14
0
 public override void UpdateFromPacket(NetIncomingMessage packet)
 {
     RoleID = packet.ReadInt32();
     worldPosition.X = packet.ReadFloat();
     worldPosition.Y = packet.ReadFloat();
     positionOverride = packet.ReadBoolean();
     SetCurrentAnimation((Anim)packet.ReadInt32());
     status = (CharStatus)packet.ReadByte();
     currentHealth = packet.ReadFloat();
     currentFocus = packet.ReadFloat();
     focusOverride = packet.ReadBoolean();
     speed = packet.ReadInt32();
     Team = (Team)packet.ReadByte();
     Name = packet.ReadString();
     CrystalCount = packet.ReadInt32();
 }
Beispiel #15
0
 public void EnterStatus(CharStatus status)
 {
     status.character = chara;
     CheckStatus(status);
 }
Beispiel #16
0
        /// <summary>
        /// 处理右大括号
        /// </summary>
        /// <param name="chr"></param>
        private void ResolveRightBigParantheses(char chr) {
            switch (csNow) {
                case CharStatus.None:
                    if (dp == null) throw new Exception("缺少对象!");

                    //添加尚未添加的信息
                    if (szName != "") {
                        SaveObject();
                    }

                    BackToParent();
                    csNow = CharStatus.ObjectFinish;

                    break;

                case CharStatus.ObjectValue:

                    if (szValue.StartsWith("\"")) {
                        szValue += chr;
                    } else {
                        SaveObject();
                    }

                    BackToParent();
                    csNow = CharStatus.ObjectFinish;

                    break;

                case CharStatus.ObjectValueFinish:

                    SaveObject();

                    BackToParent();
                    csNow = CharStatus.ObjectFinish;

                    break;

                case CharStatus.ObjectFinish:

                    BackToParent();
                    csNow = CharStatus.ObjectFinish;

                    break;

                default:
                    throw new Exception("意外的\"" + chr + "\"字符");
            }
        }
Beispiel #17
0
        /// <summary>
        /// 处理右中括号
        /// </summary>
        /// <param name="chr"></param>
        private void ResolveRightInParantheses(char chr) {
            switch (csNow) {
                case CharStatus.ObjectValue:
                    if (szValue.StartsWith("\"")) {
                        szValue += chr;
                    } else {
                        if (!dp.IsArray) throw new Exception("语法错误!");
                        SaveArrayObject();

                        BackToParent();
                        csNow = CharStatus.ObjectFinish;
                    }
                    break;
                case CharStatus.ObjectValueFinish:
                    if (!dp.IsArray) throw new Exception("语法错误!");
                    SaveArrayObject();
                    BackToParent();
                    csNow = CharStatus.ObjectFinish;
                    break;
                case CharStatus.ObjectFinish:
                    BackToParent();
                    csNow = CharStatus.ObjectFinish;
                    break;
                default:
                    throw new Exception("非法字符!");
            }
        }
Beispiel #18
0
    public override void HitDamage(int _damage)
    {
        if (CharStatus.SkillLevel [5] < 4)
        {
            if (charAlive)
            {
                if (charAlive)
                {
                    if (CharStatus.HealthPoint > 0)
                    {
                        int deFendDamage;
                        deFendDamage = _damage - (CharStatus.SkillLevel [5] * 1);
                        Debug.Log(deFendDamage);
                        if (deFendDamage < 0)
                        {
                            deFendDamage = 0;
                        }
                        CharStatus.DecreaseHealthPoint(deFendDamage);

                        if (State != CharacterState.Skill1 && State != CharacterState.Skill2 && State != CharacterState.Skill3 && State != CharacterState.Skill4)
                        {
                            CharState((int)CharacterState.HitDamage);
                        }
                    }
                    if (CharStatus.HealthPoint <= 0)
                    {
                        CharState((int)CharacterState.Death);
                        charAlive = false;
                    }
                }
            }
        }
        else if (CharStatus.SkillLevel [5] == 4)
        {
            Debug.Log(CharStatus.HealthPoint);
            if (charAlive)
            {
                if (CharStatus.HealthPoint > 0)
                {
                    int deFendDamage;
                    deFendDamage = _damage - (CharStatus.SkillLevel [5] * 1);

                    if (deFendDamage < 0)
                    {
                        deFendDamage = 0;
                    }
                    CharStatus.DecreaseHealthPoint(deFendDamage);

                    CharState((int)CharacterState.HitDamage);

                    if (State != CharacterState.Skill1 && State != CharacterState.Skill2 && State != CharacterState.Skill3 && State != CharacterState.Skill4)
                    {
                        CharState((int)CharacterState.HitDamage);
                    }
                }
                else if (CharStatus.HealthPoint <= 0)
                {
                    CharState((int)CharacterState.Death);

                    charAlive = false;

                    if (!rise)
                    {
                        rise      = true;
                        charAlive = true;
                        animator.SetBool("Rise", false);
                        StartCoroutine(colltimeCheck());
                        CharStatus.DecreaseHealthPoint((-100));
                    }
                    else if (rise)
                    {
                        animator.SetBool("Rise", true);
                    }
                }
            }
        }
    }
Beispiel #19
0
 /// <summary>
 /// 处理换行
 /// </summary>
 /// <param name="chr"></param>
 private void ResolveWrap(char chr) {
     switch (csNow) {
         case CharStatus.None:
         case CharStatus.ObjectValueFinish:
             break;
         case CharStatus.ObjectValue:
             if (szValue != "") {
                 if (szValue.StartsWith("\"")) {
                     throw new Exception("语句尚未结束,无法换行!");
                 } else {
                     csNow = CharStatus.ObjectValueFinish;
                 }
             } else {
                 if (szName != "") throw new Exception("语句尚未结束,无法换行!");
             }
             break;
         default:
             if (szName != "" || szValue != "") throw new Exception("语句尚未结束,无法换行!");
             break;
     }
     nLine++;
     nIndex = 0;
 }
Beispiel #20
0
 /// <summary>
 /// пометить персонажа как удалённый
 /// </summary>
 internal void MarkAsDeleted()
 {
     Status = CharStatus.Deleted;
 }
Beispiel #21
0
 public L2Chair(int objectId, CharTemplate template) : base(objectId, template)
 {
     Closed = 0;
     //MaxHp = 0;
     CharStatus.SetCurrentHp(0);
 }
 void Start()
 {
     status = GameObject.Find ("Char").GetComponent<CharStatus> ();
 }