Пример #1
0
    public void init()
    {
        ctrl = GetComponent <CharacterCtrl> ();
        //	tex = ctrl.cardCtrl.tex;


        blurs = new UITexture[4];
        for (int i = 0; i < blurs.Length; i++)
        {
            UITexture t = NGUITools.AddChild <UITexture>(ctrl.transform.parent.gameObject);
            t.gameObject.layer        = ctrl.gameObject.layer;
            t.mainTexture             = ctrl.cardCtrl.cardPanel.renderer.material.mainTexture;
            t.material                = new Material(ctrl.cardCtrl.cardPanel.renderer.material);
            t.width                   = 168;
            t.height                  = 168;
            t.transform.localPosition = ctrl.transform.localPosition;
            t.transform.localScale    = ctrl.transform.localScale;
            t.transform.Rotate(new Vector3(90, 0, 0));
            t.depth = i - 1;
            float alpha = (10 - i) / 3f;
            t.color = new Color(alpha, alpha, alpha, alpha * 1.2f);
            //t.color =Color.white;
            blurs[i] = t;
        }
    }
Пример #2
0
 private void OnTriggerExit(Collider other)
 {
     if (other.gameObject.tag == "Player")
     {
         CharacterCtrl character = other.GetComponent <CharacterCtrl>();
         character.canDelivery = false;
         character.collectMark.SetActive(false);
     }
 }
Пример #3
0
 public bool TryInteract(CharacterCtrl controller)
 {
     if (Input.GetButtonDown("Interact") == true)
     {
         Interact(controller);
         return(true);
     }
     return(false);
 }
Пример #4
0
 // When interacted with, Breakables start repairing
 public virtual void Interact(CharacterCtrl controller)
 {
     if (!IsInteracting)
     {
         IsInteracting = true;
         RepairingSound();
         StartCoroutine(StartRepairing());
     }
 }
Пример #5
0
 void Start()
 {
     rb             = GetComponent <Rigidbody2D>();
     animator       = GetComponent <Animator>();
     audioSource    = GetComponent <AudioSource>();
     spriteRenderer = GetComponent <SpriteRenderer>();
     breakables     = new List <Breakable>(FindObjectsOfType <Breakable>());
     breakables     = ShuffleBreakables(breakables);
     player         = FindObjectOfType <CharacterCtrl>();
     StartMoveToBreakable();
 }
Пример #6
0
 public bool TryInteract(CharacterCtrl controller)
 {
     if (Input.GetButtonDown("Vertical"))
     {
         Travel(controller.transform, Input.GetAxisRaw("Vertical") > 0);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #7
0
 private void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.tag == "Player")
     {
         CharacterCtrl character = other.GetComponent <CharacterCtrl>();
         character.canDelivery = true;
         if (character.isCollected == true)
         {
             character.collectMark.SetActive(true);
         }
     }
 }
Пример #8
0
 private void OnTriggerStay(Collider other)
 {
     if (other.gameObject.tag == "Player")
     {
         CharacterCtrl cc = other.GetComponent <CharacterCtrl>();
         if (cc.isDush == true)
         {
             Body.GetComponent <Cow>().IsEscape = true;
             rb.AddForce(-(other.transform.position - transform.position) * 10);
             Body.transform.LookAt(-(other.transform.position - transform.position));
         }
     }
 }
Пример #9
0
 public static void playCharacterAnim(CharacterCtrl player, string animName)
 {
     if (player.anim != null)
     {
         if (player.characterData.parentTeam.isGamePlayerTeam == true)
         {
             player.anim.Play(animName);
         }
         else
         {
             player.anim.Play(animName + "_enemy");
         }
     }
 }
Пример #10
0
    public void init(CharacterCtrl target, int damage, int DamageType, Vector3 offsetVector)
    {
        this.offset   = offsetVector;
        character     = target;
        hitPointTrans = character.hitPoint.transform;
        label.text    = damage.ToString();

        if (damage > 0)
        {
            label.color = Color.green;
            return;
        }
        int num = 0;

        switch (DamageType)
        {
        case BuffDamageType.poison:
            num = label.text.Length;
            label.gameObject.transform.localPosition = new Vector3(label.gameObject.transform.localPosition.x - (num - 1) * 7, label.gameObject.transform.localPosition.y, label.gameObject.transform.localPosition.z);

            ico.gameObject.SetActive(true);
            ico.width      = 61;
            ico.height     = 41;
            ico.spriteName = "poison_text";
            break;

        case BuffDamageType.beIntervene:
            //援护
            num = label.text.Length;
            label.gameObject.transform.localPosition = new Vector3(label.gameObject.transform.localPosition.x - (num - 1) * 7, label.gameObject.transform.localPosition.y, label.gameObject.transform.localPosition.z);
            ico.width  = 88;
            ico.height = 41;
            ico.gameObject.SetActive(true);
            ico.spriteName = "intervene";
            break;

            /* 优化1492 反击出现在人物启动时
             *              case BuffDamageType.beRebound:
             *                              num = label.text.Length;
             *                              label.gameObject.transform.localPosition = new Vector3 (label.gameObject.transform.localPosition.x - (num - 1) * 10, label.gameObject.transform.localPosition.y, label.gameObject.transform.localPosition.z);
             *                              ico.width = 88;
             *                              ico.height = 41;
             *                              ico.gameObject.SetActive (true);
             *                              ico.spriteName = "rebound";
             *                              break;
             */
        }
    }
Пример #11
0
    public HitTextCtrl CreateHitText(CharacterCtrl target, int damage, int damageType, float offset)
    {
        passObj     _obj  = MonoBase.Create3Dobj("Effect/Other/hitNumLabel");
        HitTextCtrl _ctrl = _obj.obj.GetComponent <HitTextCtrl> ();

        _ctrl.transform.parent = UiManager.Instance.UIEffectRoot.transform;
        Vector3 offsetVector = new Vector3(0, 0.2f, offset);
        Vector3 pos          = BattleManager.Instance.BattleCamera.WorldToScreenPoint(target.hitPoint.transform.position + offsetVector);

        _ctrl.transform.position = UiManager.Instance.gameCamera.ScreenToWorldPoint(pos);

        _ctrl.transform.localScale = Vector3.one;
        _ctrl.init(target, damage, damageType, offsetVector);
        AddEffect(_ctrl);
        return(_ctrl);
    }
Пример #12
0
    public GetExpCtrl CreateGetExpLabel(int _type, CharacterCtrl target, int str, int _lv, int _combat)
    {
        passObj    _obj  = MonoBase.Create3Dobj("Effect/Other/getExpLabel");
        GetExpCtrl _ctrl = _obj.obj.GetComponent <GetExpCtrl> ();

        _ctrl.transform.parent = UiManager.Instance.UIEffectRoot.transform;
        if (target != null)
        {
            Vector3 pos = BattleManager.Instance.BattleCamera.WorldToScreenPoint(target.hitPoint.transform.position + new Vector3(0, 0.2f, 0.2f));
            _ctrl.transform.position   = UiManager.Instance.gameCamera.ScreenToWorldPoint(pos);
            _ctrl.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f);
            _ctrl.init(_type, target, str, _lv, _combat);
            AddEffect(_ctrl);
        }
        return(_ctrl);
    }
Пример #13
0
	public override void KernelLoaded ()
	{
		base.KernelLoaded ();

		cCtrl = GetComponent<CharacterCtrl>();

		OnEvent<RunToEvent>().Subscribe(e => {

			cCtrl.RunTo(e.Position);

		});

		OnEvent<KeyPressEvent>().Subscribe(e => {
			var c = e.KeyCode;

			switch (c)
			{
			case KeyCode.Q:
				{
				cCtrl.Spell1();
				break;
				}
			case KeyCode.W:
				{
					cCtrl.Spell2();
					break;
				}
			case KeyCode.E:
				{
					cCtrl.Spell3();
					break;
				}
			case KeyCode.R:
				{
					cCtrl.Spell4();
					break;
				}
			case KeyCode.B:
				{
					cCtrl.GoHome();
					break;
				}

			}

		});
	}
Пример #14
0
    //普通技能显示板
    public SkillNameCtrl CreateSkillNameEffect(CharacterCtrl target, string str)
    {
        if (BattleManager.Instance.isCameraScaleNow == true)
        {
            return(null);
        }
        passObj       _obj  = MonoBase.Create3Dobj("Effect/Other/skillNameLabel");
        SkillNameCtrl _ctrl = _obj.obj.GetComponent <SkillNameCtrl> ();

        _ctrl.transform.parent = UiManager.Instance.UIEffectRoot.transform;
        Vector3 pos = BattleManager.Instance.BattleCamera.WorldToScreenPoint(target.hitPoint.transform.position + new Vector3(0, 0.1f, 0.2f));

        _ctrl.transform.position   = UiManager.Instance.gameCamera.ScreenToWorldPoint(pos);
        _ctrl.transform.localScale = new Vector3(0.001f, 0.001f, 0.001f);
        _ctrl.init(target, str);
        AddEffect(_ctrl);
        return(_ctrl);
    }
Пример #15
0
    //创建队员表演实例
    public CharacterCtrl CreateCharacterInstance(CharacterData player)
    {
        //create characterCtrl
        passObj _obj;

        if (player.role.isBoss())
        {
            _obj = MonoBase.Create3Dobj("character/bossCard");
        }
        else if (player.role.isBeast())
        {
            _obj = MonoBase.Create3Dobj("character/beastCard");
        }
        else
        {
            _obj = MonoBase.Create3Dobj("character/normalCard");
        }

        _obj.obj.transform.parent = TeamSide;

        if (BattleManager.battleData.battleType == BattleType.BATTLE_TEN)
        {
            _obj.obj.transform.localScale = player.orgScale;
        }
        else
        {
            _obj.obj.transform.localScale = Vector3.one;
        }

        CharacterCtrl _ctrl = _obj.obj.GetComponent <CharacterCtrl> ();

        if (player.camp == TeamInfo.OWN_CAMP)
        {
            _obj.obj.transform.position = player.orgPosition + new Vector3(0, 0, -10);
        }
        else
        {
            _obj.obj.transform.position = player.orgPosition + new Vector3(0, 0, 10);
        }

        _ctrl.init(player, this);
        _ctrl.gameObject.name = player.serverID.ToString();
        return(_ctrl);
    }
Пример #16
0
 public void Interact(CharacterCtrl controller)
 {
     Travel(controller.transform, Input.GetAxisRaw("Vertical") > 0);
 }
Пример #17
0
 private void Start()
 {
     charCtrl = GetComponentInParent <CharacterCtrl>();
 }
Пример #18
0
 public void Interact(CharacterCtrl controller)
 {
     canvas.enabled = !canvas.enabled;
 }
Пример #19
0
 public override bool TryInteract(CharacterCtrl controller)
 {
     Debug.Log("Player shouldn't interact with lights!");
     return(false);
 }
Пример #20
0
 // Start is called before the first frame update
 void Start()
 {
     character = GetComponent <CharacterCtrl>();
 }
Пример #21
0
 public override bool TryInteract(CharacterCtrl controller)
 {
     actionAnimation.gameObject.SetActive(true);
     return(base.TryInteract(controller));
 }
Пример #22
0
    /// <summary>
    /// 初始化信息
    /// </summary>
    /// <param name="_type">1卡片 2女神.</param>
    /// <param name="target">Target.</param>
    /// <param name="_newExp">_new exp.</param>
    /// <param name="_lv">_lv.</param>
    /// <param name="_combat">_combat.</param>
    public void init(int _type, CharacterCtrl target, int _newExp, int _lv, int _combat)
    {
        cardtype  = _type;
        expAdd    = 0;
        character = target;
        vipExpMax = _newExp;
        lv        = _lv;
        combat    = _combat;

        if (_type == TYPE_CARD)
        {
            expAdd += GuildManagerment.Instance.getSkillAddExpPorCardPve() * 0.01f;
        }
        else if (_type == TYPE_BEAST)
        {
            expAdd += GuildManagerment.Instance.getSkillAddExpPorBeastPve() * 0.01f;
        }

        if (UserManager.Instance.self.getVipLevel() > 0)
        {
            expAdd += VipManagerment.Instance.getVipbyLevel(UserManager.Instance.self.getVipLevel()).privilege.expAdd * 0.0001f;
            expMax  = (int)((float)_newExp / (1 + expAdd));
            stepVip = (int)((float)(_newExp - expMax) / (TextTime * 53));

            if (stepVip < 1)
            {
                stepVip = 1;
            }
        }
        else
        {
            expMax = vipExpMax;
        }
        step = (int)((float)expMax / (TextTime * 53));
        if (step < 1)
        {
            step = 1;
        }

        if (expMax == 0)
        {
            Card tmpCard = character.characterData.role;
            //达到自身等级上限(非主角等级限制)且未进化满10次的卡片在获得经验时飘字: 需进化
            if (tmpCard != null && !EvolutionManagerment.Instance.isMaxEvoLevel(tmpCard) && tmpCard.isMaxLevel())
            {
                label.text = LanguageConfigManager.Instance.getLanguage("Evo19");
            }
            //如果卡片确实已经达到了进化10次的上限,则飘字提示 已满级
            else if (tmpCard != null && EvolutionManagerment.Instance.isMaxEvoLevel(tmpCard) && tmpCard.isMaxLevel())
            {
                label.text = LanguageConfigManager.Instance.getLanguage("Evo20");
            }
            else if (tmpCard != null && cardtype == TYPE_BEAST)
            {
                BeastEvolve tmp = BeastEvolveManagerment.Instance.getBeastEvolveBySid(tmpCard.sid);//StorageManagerment.Instance.getBeast(tmpCard.uid);
                if (tmp.getBeast().isMaxLevel() && tmp.getBeast().getLevel() == 125)
                {
                    label.text = LanguageConfigManager.Instance.getLanguage("Evo20");
                }
                else if (tmp.getBeast().isMaxLevel() && tmp.getBeast().getLevel() != 125)
                {
                    label.text = LanguageConfigManager.Instance.getLanguage("Evo19");
                }
            }
        }
    }
Пример #23
0
 public void init(CharacterCtrl target, string str)
 {
     character  = target;
     label.text = str;
     ico        = null;
 }
Пример #24
0
 public void Interact(CharacterCtrl controller)
 {
 }
Пример #25
0
 public void ChangeToChasePlayer(CharacterCtrl targetCharacter)
 {
     nowStatus = Status.ChasePlayer;
     gameObject.AddComponent <ChaseCharacter>();
     gameObject.GetComponent <ChaseCharacter>().character = targetCharacter;
 }
Пример #26
0
 public abstract bool TryInteract(CharacterCtrl controller);
Пример #27
0
 // Prompts always start their interaction
 public override bool TryInteract(CharacterCtrl controller)
 {
     prompt.SetActive(true);
     Interact(controller);
     return(true);
 }
Пример #28
0
    // Use this for initialization
    public virtual void     initBullet(CharacterData _target, CharacterData _owner, List <BuffCtrl> buffs, bool _isLastBullet)
    {
        //
        target     = _target;
        owner      = _owner;
        lastBullet = _isLastBullet;
        this.buffs = buffs;
        if (owner.characterCtrl.activeAction.Skill.serverData.sample != null)
        {
            // Debug.LogError("sample.sid" + owner.characterCtrl.activeAction.Skill.serverData.sample.sid);
            if (owner.characterCtrl.activeAction.Skill.serverData.sample.sid == 23005)
            {
                //    Debug.LogError("displayType===" + displayType);
            }
        }
        if (displayType == bulletDisplayTypeEnum.lightBeam)           //光线类
        {
            if (renders == null || renders.Length == 0)
            {
                LineRenderer render = transform.FindChild("line").GetComponent <LineRenderer> ();
                render.SetPosition(0, owner.characterCtrl.hitPoint.transform.position);
                if (owner.characterCtrl.activeAction.Skill.serverData.sample.getType() == SkillType.bulletMultipleAOE)
                {
                    //多发子弹不会有援护,所以直接取目标位置
                    render.SetPosition(1, target.characterCtrl.transform.position + new Vector3(0, 0.1f, 0));
                }
                else
                {
                    //单发可能有援护,要取修正地址
                    render.SetPosition(1, owner.characterCtrl.activeAction.Skill.position);
                }
            }
            else
            {
                LineRenderer render;
                for (int i = 0, len = renders.Length; i < len; i++)
                {
                    render = renders[i];
                    render.SetPosition(0, owner.characterCtrl.hitPoint.transform.position);
                    if (owner.characterCtrl.activeAction.Skill.serverData.sample.getType() == SkillType.bulletMultipleAOE)
                    {
                        //多发子弹不会有援护,所以直接取目标位置
                        render.SetPosition(1, target.characterCtrl.transform.position + new Vector3(0, 0.1f, 0));
                    }
                    else
                    {
                        //单发可能有援护,要取修正地址
                        render.SetPosition(1, owner.characterCtrl.activeAction.Skill.position);
                    }
                }
            }
            iTween.ValueTo(gameObject, iTween.Hash("from", 1, "to", 0, "onupdate", "", "easetype", iTween.EaseType.linear, "oncomplete", "hit", "time", blastingTime));
            if (isLastBullet())
            {
                iTween.ValueTo(gameObject, iTween.Hash("from", 1, "to", 0, "onupdate", "", "easetype", iTween.EaseType.linear, "oncomplete", "destoryAndActionOver", "time", life));
            }
            else
            {
                iTween.ValueTo(gameObject, iTween.Hash("from", 1, "to", 0, "onupdate", "", "easetype", iTween.EaseType.linear, "oncomplete", "destory", "time", life));
            }
        }
        else if (displayType == bulletDisplayTypeEnum.lightBeamInfinite)
        {
            if (owner.characterCtrl.activeAction.Skill.serverData.sample.getType() == SkillType.bulletMultipleAOE)
            {
                dir = target.characterCtrl.transform.position - owner.characterCtrl.hitPoint.transform.position;
            }
            else
            {
                dir = owner.characterCtrl.activeAction.Skill.position - owner.characterCtrl.hitPoint.transform.position;
            }
            dir.Normalize();
            if (renders == null || renders.Length == 0)
            {
                //打通屏幕型光线枪
                LineRenderer render = transform.FindChild("line").GetComponent <LineRenderer> ();
                render.SetPosition(0, owner.characterCtrl.hitPoint.transform.position);
                render.SetPosition(1, owner.characterCtrl.hitPoint.transform.position + dir * 2f);
            }
            else
            {
                LineRenderer render;
                for (int i = 0, len = renders.Length; i < len; i++)
                {
                    render = renders[i];
                    render.SetPosition(0, owner.characterCtrl.hitPoint.transform.position);
                    render.SetPosition(1, owner.characterCtrl.hitPoint.transform.position + dir * 2f);
                }
            }
            hit();
            target.characterCtrl.cardCtrl.longShake(life + 0.2f);
            iTween.ValueTo(gameObject, iTween.Hash("from", 1, "to", 0, "onupdate", "", "easetype", iTween.EaseType.linear, "oncomplete", "destoryAndActionOver", "time", life));
        }
        else if (displayType == bulletDisplayTypeEnum.throughAOE)
        {
            //类EZ大招型子弹
            CharacterCtrl.playCharacterAnim(owner.characterCtrl, "cardThrowAnim");
            transform.localScale = Vector3.one;
            if (target.parentTeam.isGamePlayerTeam == true)
            {
                dir = BattleManager.Instance.playerTeam.TeamHitPoint.position - owner.characterCtrl.hitPoint.transform.position;
                transform.LookAt(BattleManager.Instance.playerTeam.TeamHitPoint.position, transform.up);
                transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, transform.eulerAngles.z);
            }
            else
            {
                dir = BattleManager.Instance.enemyTeam.TeamHitPoint.position - owner.characterCtrl.hitPoint.transform.position;
                transform.LookAt(BattleManager.Instance.enemyTeam.TeamHitPoint.position, transform.up);
                transform.eulerAngles = new Vector3(0, transform.eulerAngles.y, transform.eulerAngles.z);
            }
            dir.Normalize();
            //offset
            transform.position = owner.characterCtrl.transform.position + new Vector3(0, 0.3f, 0);
            _position          = owner.characterCtrl.transform.position + dir * 5;
            iTween.MoveTo(gameObject, iTween.Hash("position", _position, "easetype", iTween.EaseType.linear, "oncomplete", "destory", "time", life));
            iTween.ValueTo(gameObject, iTween.Hash("from", 1, "to", 0, "onupdate", "", "easetype", iTween.EaseType.linear, "oncomplete", "hitAndActionOver", "time", blastingTime));
        }
        else if (displayType == bulletDisplayTypeEnum.fixAOE)
        {
            setOffset();
            iTween.ValueTo(gameObject, iTween.Hash("from", 1, "to", 0, "onupdate", "", "easetype", iTween.EaseType.linear, "oncomplete", "hitAndActionOver", "time", blastingTime));
            iTween.ValueTo(gameObject, iTween.Hash("from", 1, "to", 0, "onupdate", "", "easetype", iTween.EaseType.linear, "oncomplete", "destory", "time", life));
        }
        else
        {
            //普通子弹
            setOffset();
            lookAtTarget();
            float dis = Vector3.Distance(owner.characterCtrl.transform.localPosition, _target.characterCtrl.transform.localPosition);

            if (lastBullet)
            {
                dis = 960;
            }

            iTween.MoveTo(gameObject, iTween.Hash("position", _position, "easetype", iTween.EaseType.linear, "oncomplete", "Blasting", "time", Mathf.Clamp(life * dis / 960f, 0.03f, life)));
        }
    }