コード例 #1
0
ファイル: ResumeEnergy.cs プロジェクト: Kiotazz/Madoka
 public void Init(InteractiveObj master)
 {
     Master = master;
     counter = 0;
     tarSkillEnergy = master.GetSkillEnergy(E_Type);
 }
コード例 #2
0
ファイル: InteractiveObj.cs プロジェクト: Kiotazz/Madoka
    public virtual bool HasSkillEnergy(WorldSetting.Energy type, float value)
    {
        SkillEnergy skillResource = GetSkillEnergy(type);

        return(skillResource && skillResource.Current >= value);
    }
コード例 #3
0
ファイル: InteractiveObj.cs プロジェクト: Kiotazz/Madoka
    /// <summary>
    /// 尝试增/减技能资源
    /// </summary>
    /// <param name="type">技能资源类型</param>
    /// <param name="value">改变数量</param>
    /// <param name="allowFree">当目标资源不存在时也判断为成功</param>
    /// <returns></returns>
    public virtual bool TryChangeSkillEnergy(WorldSetting.Energy type, float value)
    {
        SkillEnergy skillEnergy = GetSkillEnergy(type);

        return(skillEnergy && skillEnergy.ChangeValue(value));
    }
コード例 #4
0
ファイル: InteractiveObj.cs プロジェクト: Kiotazz/Madoka
    void Start()
    {
        ID           = ++MaxID;
        RealCamp     = Camp;
        HP           = StartHP;
        ColliderSelf = gameObject.GetComponent <Collider>();
        if (!ColliderSelf)
        {
            ColliderSelf = gameObject.AddComponent <BoxCollider>();
        }
        IsTrigger = ColliderSelf.isTrigger;
        Role      = gameObject.GetComponentInChildren <Asset_Role>();
        if (Role)
        {
            Role.Init(this);
        }
        else if (this != WorldInteractObj.Instance)
        {
            Debug.LogError(gameObject.name + "下没有找到Asset_Role!");
        }

        dicSkillEnergy.Clear();
        SearchEnemyBase[] searchEnemies = GetComponentsInChildren <SearchEnemyBase>(true);
        for (int i = 0, length = searchEnemies.Length; i < length; ++i)
        {
            SearchEnemyBase single = searchEnemies[i];
            single.Init(this);
            listSearchEnemy.Add(single);
        }
        SkillEnergy[] skillResources = GetComponentsInChildren <SkillEnergy>(true);
        for (int i = 0, length = skillResources.Length; i < length; ++i)
        {
            SkillEnergy single = skillResources[i];
            single.Init(this);
            dicSkillEnergy[single.E_type] = single;
        }
        ResumeEnergy[] resumeSkillResources = GetComponentsInChildren <ResumeEnergy>(true);
        for (int i = 0, length = resumeSkillResources.Length; i < length; ++i)
        {
            ResumeEnergy single = resumeSkillResources[i];
            single.Init(this);
            listResumeSkillEnergy.Add(single);
        }
        SkillBase[] skills = GetComponentsInChildren <SkillBase>(true);
        for (int i = 0, length = skills.Length; i < length; ++i)
        {
            SkillBase single = skills[i];
            single.Init(this);
            listSkills.Add(single);
        }
        listSkills.Sort((a, b) => { return(b.CastOrder - a.CastOrder); });

        fAttackMinRange = AttackMinRange;
        OutBattleRange  = Mathf.Max(fAttackMaxRange = AttackMaxRange, OutBattleRange);
        Init();
        InitBloodUI();
        BattleManager.Instance.RegisterInteractiveObj(this);

        InteractiveObjExt[] exts = GetComponentsInChildren <InteractiveObjExt>(true);
        for (int i = 0, length = exts.Length; i < length; ++i)
        {
            InteractiveObjExt single = exts[i];
            single.Init(this);
            listExtModules.Add(single);
        }

        OnInitOver.Invoke();
    }