コード例 #1
0
ファイル: PlayerInfo.cs プロジェクト: fuj1n/JMC-InfiniDungeon
    private void Update()
    {
        PlayerControllerBase controller = PlayerControllerBase.GetActiveInstance();
        PlayerData           data       = PlayerData.Instance;

        if (data == null)
        {
            return;
        }

        playerName.text = data.name;

        hpValue = Mathf.Lerp(hpValue, controller.life, Time.deltaTime * updateSpeed);
        xpValue = Mathf.Lerp(xpValue, (float)data.Experience / data.ExperienceToNextLevel, Time.deltaTime * updateSpeed);

        playerHP.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, playerHPBackground.rect.width * hpValue);
        playerHPVal.text = (int)(controller.life * controller.maxLife) + " / " + (int)controller.maxLife;

        playerXP.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, playerXPBackground.rect.width * xpValue);
        playerXPVal.text = data.Experience + " / " + data.ExperienceToNextLevel;

        playerLevel.text = "Level " + data.level;
        playerClass.text = i18n.Translate("player.class." + data.playerClass);
    }
コード例 #2
0
    private void Start()
    {
        PlayerControllerBase controller = PlayerControllerBase.GetActiveInstance();

        SpellBase[] spells = controller.Spells;
        renderers        = new Image[spells.Length];
        cooldownOverlays = new RectTransform[spells.Length];
        cooldowns        = new Text[spells.Length];

        for (int i = 0; i < spells.Length; i++)
        {
            SpellBase spell = spells[i];

            GameObject go = new GameObject("spell");
            go.transform.SetParent(transform, false);

            renderers[i]        = go.AddComponent <Image>();
            renderers[i].sprite = Resources.Load <Sprite>("Icons/" + spell.icon);

            RectTransform rect = go.GetComponent <RectTransform>();

            rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, BOX_SIZE.x);
            rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, BOX_SIZE.y);

            GameObject spellOverlay = new GameObject("overlay");
            cooldownOverlays[i] = spellOverlay.AddComponent <RectTransform>();
            cooldownOverlays[i].SetParent(rect, false);

            cooldownOverlays[i].SetInsetAndSizeFromParentEdge(RectTransform.Edge.Bottom, 0F, 0F);

            spellOverlay.AddComponent <Image>().color = new Color(UNUSABLE.r, UNUSABLE.g, UNUSABLE.b, .5F);

            GameObject numberBackground = new GameObject("numberBackground");
            numberBackground.transform.SetParent(rect, false);

            Image numberBg = numberBackground.AddComponent <Image>();
            numberBg.color = new Color(0F, 0F, 0F, .75F);

            RectTransform bgRect = numberBackground.GetComponent <RectTransform>();

            bgRect.anchorMin = new Vector2(0F, 0F);
            bgRect.anchorMax = new Vector2(0F, 0F);
            bgRect.pivot     = new Vector2(0F, 0F);
            bgRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, 30F);
            bgRect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, 30F);

            GameObject hotbarNumber = new GameObject("hotbarNumber");
            Text       numberText   = hotbarNumber.AddComponent <Text>();
            numberText.font      = Resources.GetBuiltinResource <Font>("Arial.ttf");
            numberText.fontSize  = 36;
            numberText.alignment = TextAnchor.MiddleCenter;
            numberText.transform.SetParent(numberBackground.transform, false);

            numberText.text = PlayerControllerBase.keyLabels[i];

            GameObject cooldownNumber = new GameObject("cooldownNumber");
            cooldowns[i]           = cooldownNumber.AddComponent <Text>();
            cooldowns[i].font      = Resources.GetBuiltinResource <Font>("Arial.ttf");
            cooldowns[i].fontSize  = 36;
            cooldowns[i].alignment = TextAnchor.MiddleCenter;
            cooldowns[i].transform.SetParent(rect, false);
            cooldowns[i].color = COOLDOWN_VALUE;
        }
    }
コード例 #3
0
ファイル: SpellHeal.cs プロジェクト: fuj1n/JMC-InfiniDungeon
 public override void Cast(PlayerControllerBase controller)
 {
     controller.Heal(controller.playerData.GetMaxLife() * healingPotential);
 }
コード例 #4
0
ファイル: Bullet.cs プロジェクト: Kerzak1408/LudumDare44
 public void Shoot(Vector3 direction, PlayerControllerBase owner)
 {
     this.direction = direction;
     this.shooting  = true;
     this.owner     = owner;
 }
コード例 #5
0
ファイル: GroundDetect.cs プロジェクト: stefenism/spaceheist
 // Use this for initialization
 void Start()
 {
     player = GetComponent(typeof(PlayerControllerBase)) as PlayerControllerBase;
 }
コード例 #6
0
ファイル: SpellBase.cs プロジェクト: fuj1n/JMC-InfiniDungeon
 public abstract void Cast(PlayerControllerBase controller);
コード例 #7
0
ファイル: SpellBase.cs プロジェクト: fuj1n/JMC-InfiniDungeon
 public virtual bool CompareLevelRequirement(PlayerControllerBase controller)
 {
     return(controller.playerData.level >= levelRequirement);
 }
コード例 #8
0
        private void Update()
        {
            // Context switch was requested
            // To ensure we do not switch controllers in the middle of the frame we only update the
            // controller at the beginning of the frame. Controller change requests made in the middle
            // of the frame will only affect the m_NewController.
            if (m_NewController != null)
            {
                m_controller    = m_NewController;
                m_NewController = null;
            }
            RotateView();

            RaycastHit HitInfo;
            int        NotPlayerMask = ~(1 << LayerMask.NameToLayer("PlayerCharacter"));

            if (Physics.Raycast(m_Camera.transform.position, m_Camera.transform.forward, out HitInfo, 10.0f, NotPlayerMask))
            {
                GuiOutput.DisplayDebugDistanceMessage("" + ((RaycastHit)HitInfo).distance);
                m_WasHovering = true;
                GameObject NewTarget = HitInfo.collider.gameObject;
                if (NewTarget == m_PreviousTarget)
                {
                    m_HoverTime += Time.deltaTime;
                    m_controller.OnHover(m_HoverTime);
                }
                else
                {
                    m_HoverTime = 0.0f;
                    m_controller.OnTargetChange(HitInfo);
                }
                m_PreviousTarget = NewTarget;
            }
            else if (m_WasHovering)
            {
                m_WasHovering    = false;
                m_PreviousTarget = null;
                m_controller.OnTargetChange(null);
            }

            if (!m_MouseDown)
            {
                m_MouseDown = Input.GetMouseButtonDown(0);
                m_HoldTime  = 0.0f;
            }
            else if (Input.GetMouseButtonUp(0))
            {
                m_MouseDown = false;
                if (m_HoldTime < m_ClickSensitivity)
                {
                    m_controller.OnClick();
                }
                else
                {
                    m_controller.OnRelease(m_HoldTime);
                }
            }
            else
            {
                m_HoldTime += Time.deltaTime;
                if (m_HoldTime > m_ClickSensitivity)
                {
                    m_controller.OnHold(m_HoldTime);
                }
            }
        }
コード例 #9
0
 public void ChangeContext(PlayerControllerBase newController)
 {
     Debug.Log(String.Format("Switched to {0}", newController.GetType()));
     m_NewController = newController;
 }
コード例 #10
0
 private void InitPlayerController()
 {
     playerController = new PlayerController(playerView, playerData, lazerFactory, levelView);
 }
コード例 #11
0
 // 컨트롤러와 연결되었을 경우 호출되는 메서드입니다.
 public virtual void OnControllerConnected(PlayerControllerBase connectedController)
 {
     _PlayerController = connectedController;
 }