Beispiel #1
0
    public void Init(BattlerData data = null, Action <BattlerData> onSave = null)
    {
        if (data == null)
        {
            data = new BattlerData();
        }
        this.data = data;

        if (onSave != null)
        {
            this.onSave += onSave;
        }

        nameField.text = data.name;
        nameField.onEndEdit.AddListener((string name) => { data.name = name; });

        indexField.text = data.pkID.ToString();
        indexField.onEndEdit.AddListener((string index) => { OnIndexUpdate(index); });

        Sprite sprite = null;

        Main.Instance.pokeImages.TryGetValue(data.pkID, out sprite);
        image.sprite = sprite;


        Utilities.RefreshPKLayoutGroup(againstRoot, data.againstList, OnClickAgainstButton);
        Utilities.RefreshPKLayoutGroup(counterRoot, data.counterList, OnClickCounterButton);

        gameObject.SetActive(true);
    }
    void Score()
    {
        List <ScoreResult> playerScores = new List <ScoreResult>();

        foreach (int id in playerList)
        {
            BattlerData battlerData = battlers[id];
            ScoreResult score       = new ScoreResult();

            foreach (int targetID in targetList)
            {
                if (battlerData.againstList.Contains(targetID))
                {
                    score.against += 1;
                }
                if (battlerData.counterList.Contains(targetID))
                {
                    score.counter += 1;
                }
            }
            playerScores.Add(score);
        }

        RefreshScoreLayout(playerScores);
    }
Beispiel #3
0
    public void RequestHealthbar(int instanceID, Transform trans, BattlerData data)
    {
        if (!IsCurrentlyActive(instanceID))
        {
            Healthbar healthbar = _healthbarPoolSO.Request();
            _currentlyActiveHealthbars.Add(healthbar);

            healthbar.SetHealthbar(instanceID, trans, data);
            healthbar.OnHealthbarFinishedDisplaying += OnHealthbarFinishedPlaying;
        }
    }
Beispiel #4
0
    // Inisialisasi
    protected virtual void Awake()
    {
        _animators = GetComponentsInChildren <Animator>();

        _head = transform.Find("Head");
        if (_head == null)
        {
            Debug.LogError("Battler has no head referenced");
        }

        _damageDealer = new DamageDealer(GetComponentsInChildren <DamageDealerTrigger>());

        Data = Instantiate(Data);
    }
    public bool TryGetBattlerByString(string id, out BattlerData battlerData)
    {
        battlerData = null;
        int index;

        if (int.TryParse(id, out index) == false)
        {
            return(false);
        }
        if (battlers.TryGetValue(index, out battlerData) == false)
        {
            return(false);
        }

        return(true);
    }
Beispiel #6
0
    private IEnumerator SetHealthbarRoutine(Transform trans, BattlerData data)
    {
        startTime = Time.time;
        this.gameObject.SetActive(true);

        while (startTime + duration > Time.time && trans != null)
        {
            this.transform.position = Camera.main.WorldToScreenPoint(trans.position + offset);

            this._healthImage.fillAmount = Mathf.Lerp(this._healthImage.fillAmount, ((float)data.HP) / data.MaxHP, 5);

            yield return(null);
        }

        OnHealthbarFinishedDisplaying.Invoke(this);
    }
Beispiel #7
0
 public void AddBattler(BattlerData data)
 {
     BattleManager.Instance.battlers[data.pkID] = data;
     RefreshAllBattlerList();
     BattleManager.Instance.SaveBattlersData();
 }
Beispiel #8
0
 public void Cancel()
 {
     data = null;
     gameObject.SetActive(false);
 }
 public void SetHealthbar(int instanceID, Transform trans, BattlerData data)
 {
     InstanceID = instanceID;
     StartCoroutine(SetHealthbarRoutine(trans, data));
 }
 public void RaiseEvent(int instanceID, Transform trans, BattlerData data)
 {
     OnEventRaised?.Invoke(instanceID, trans, data);
 }