コード例 #1
0
ファイル: HvacManager.cs プロジェクト: AshbyGeek/Thermostat
        public HvacManager(ISystemClock clock, ISystemIO systemIO, IEnumerable <IHvacAlgorithm> validModes)
        {
            _Clock = clock;
            _IO    = systemIO;

            ValidModes            = validModes.ToList();
            _CurrentHvacAlgorithm = ValidModes.First(x => x.GetType() == typeof(NoHeatCool));

            _Clock.TimeTick += Clock_TimeTick;
        }
コード例 #2
0
    public void LoadData(List<string> data, bool isHeroSkill)
    {
        for (int i = 1; i < data.Count; i++)
        {
            switch (data[i])
            {
                case ".id":
                    Id = data[++i];
                    break;
                case ".level":
                    Level = int.Parse(data[++i]);
                    break;
                case ".type":
                    Type = data[++i];
                    break;
                case ".atk":
                    Accuracy = float.Parse(data[++i]) / 100;
                    break;
                case ".dmg":
                    if(isHeroSkill)
                        DamageMod = float.Parse(data[++i]) / 100;
                    else
                    {
                        DamageMin = float.Parse(data[++i]);
                        DamageMax = float.Parse(data[++i]);
                    }
                    break;
                case ".crit":
                    CritMod = float.Parse(data[++i]) / 100;
                    break;
                case ".launch":
                    LaunchRanks = new FormationSet(data[++i]);
                    break;
                case ".target":
                    if (++i < data.Count && data[i--][0] != '.')
                        TargetRanks = new FormationSet(data[++i]);
                    else
                        TargetRanks = new FormationSet("");
                    break;
                case ".is_crit_valid":
                    IsCritValid = bool.Parse(data[++i].ToLower());
                    break;
                case ".self_target_valid":
                    IsSelfValid = bool.Parse(data[++i].ToLower());
                    break;
                case ".extra_targets_count":
                    ExtraTargetsCount = int.Parse(data[++i]);
                    break;
                case ".extra_targets_chance":
                    ExtraTargetsChance = float.Parse(data[++i]);
                    break;
                case ".is_user_selected_targets":
                    IsUserSelectedTarget = bool.Parse(data[++i].ToLower());
                    break;
                case ".can_miss":
                    CanMiss = bool.Parse(data[++i].ToLower());
                    break;
                case ".is_continue_turn":
                    IsContinueTurn = bool.Parse(data[++i].ToLower());
                    break;
                case ".per_turn_limit":
                    LimitPerTurn = int.Parse(data[++i]);
                    break;
                case ".per_battle_limit":
                    LimitPerBattle = int.Parse(data[++i]);
                    break;
                case ".valid_modes":
                    while (++i < data.Count && data[i--][0] != '.')
                    {
                        if (data[++i].Length < 2)
                            continue;

                        ValidModes.Add(data[i]);
                    }
                    break;
                case ".human_effects":
                    var humanEffects = new List<Effect>();
                    ModeEffects.Add("human", humanEffects);
                    while (++i < data.Count && data[i--][0] != '.')
                    {
                        if (data[++i].Length < 2)
                            continue;

                        if (DarkestDungeonManager.Data.Effects.ContainsKey(data[i]))
                            humanEffects.Add(DarkestDungeonManager.Data.Effects[data[i]]);
                        else
                            Debug.LogError("Missing effect " + data[i] + " in skill " + Id);
                    }
                    break;
                case ".beast_effects":
                    var beastEffects = new List<Effect>();
                    ModeEffects.Add("beast", beastEffects);
                    while (++i < data.Count && data[i--][0] != '.')
                    {
                        if (data[++i].Length < 2)
                            continue;

                        if (DarkestDungeonManager.Data.Effects.ContainsKey(data[i]))
                            beastEffects.Add(DarkestDungeonManager.Data.Effects[data[i]]);
                        else
                            Debug.LogError("Missing effect " + data[i] + " in skill " + Id);
                    }
                    break;
                case ".effect":
                    while (++i < data.Count && data[i--][0] != '.')
                    {
                        if (data[++i].Length < 2)
                            continue;

                        if(DarkestDungeonManager.Data.Effects.ContainsKey(data[i]))
                            Effects.Add(DarkestDungeonManager.Data.Effects[data[i]]);
                        else
                            Debug.LogError("Missing effect " + data[i] + " in skill " + Id);
                    }
                    break;
                case ".generation_guaranteed":
                    IsGenerationGuaranteed = bool.Parse(data[++i].ToLower());
                    break;
                case ".is_knowledgeable":
                    IsKnowledgeable = bool.Parse(data[++i].ToLower());
                    break;
                case ".heal":
                    Heal = new HealComponent(int.Parse(data[++i]), int.Parse(data[++i]));
                    break;
                case ".move":
                    Move = new MoveComponent(int.Parse(data[++i]), int.Parse(data[++i]));
                    break;
                case "combat_skill:":
                    break;
                default:
                    Debug.LogError("Unexpected token in combat skill: " + data[i]);
                    break;
            }
        }
        if (Accuracy == 0 || TargetRanks.IsSelfFormation || TargetRanks.IsSelfTarget)
        {
            if (Heal == null)
                Category = SkillCategory.Support;
            else
                Category = SkillCategory.Heal;
        }
    }