Ejemplo n.º 1
0
        private KnifeDef GetKnifeFullDef(string knife, KnifeMode mode)
        {
            RawNode node = null;

            string modeKey = KnifeUtils.GetKnifeModeKey(mode);

            var knifeNode = m_knivesSettings.GetNode(knife);
            var modesNode = knifeNode.GetNode("modes");

            if (modesNode.CheckKey(modeKey))
            {
                var modeNode = modesNode.GetNode(modeKey);
                node = modeNode.WithFallback(knifeNode);
            }
            else
            {
                throw new InvalidOperationException("Knife " + knife + " not support " + mode + " mode");
            }

            var modesSettings = m_settings.GetNode("modes");

            if (modesSettings.CheckKey(modeKey))
            {
                node = node.WithFallback(modesSettings.GetNode(modeKey));
            }

            if (modesSettings.CheckKey("default"))
            {
                node = node.WithFallback(modesSettings.GetNode("default"));
            }

            return(new KnifeDef(knife, mode, node));
        }
Ejemplo n.º 2
0
        public KnifeDef(string key, KnifeMode mode, RawNode config)
        {
            this.key  = key;
            this.mode = mode;

            name             = config.GetString("name");
            rarity           = KnifeUtils.GetRarity(config.GetString("rarity", "common"));
            modes            = KnifeUtils.GetSupportedModes(config);
            timeScale        = config.GetFloat("time_scale");
            minForce         = config.GetFloat("knife_min_force");
            maxForce         = config.GetFloat("knife_max_force");
            gravity          = config.GetFloat("gravity");
            bounceMultiplier = config.GetFloat("knife_bounce_multiplier");
            heightMultiplier = config.GetFloat("height_multiplier");
            rotationSpeed    = config.GetFloat("rotation_speed");
            rotationDecrease = config.GetFloat("rotation_decrease");
            rotationMinSpeed = config.GetFloat("rotation_min_speed");

            prefab = config.GetString("prefab");
            scale  = config.GetFloat("scale");
            sides  = config.GetInt("sides", 1);
            size   = config.GetFloat("size");

            price = config.CheckKey("price") ? new PriceDef(config.GetNode("price")) : PriceDef.NewNone();

            visibleInCollection   = config.GetBool("collection_visible", true);
            visibleInRoulette     = config.GetBool("roulette_visible", true);
            droppableFromRoulette = config.GetBool("roulette_drop", true);

            ReadDeflection(config, "success_deflection", out successDeflectionLeft, out successDeflectionRight);
            ReadDeflection(config, "perfect_success_deflection", out perfectDeflectionLeft, out perfectDeflectionRight);

            hasSkillSuccessDeflection = HasDeflection(config, "skill_success_deflection");
            if (hasSkillSuccessDeflection)
            {
                ReadDeflection(config, "skill_success_deflection", out skillSuccessDeflectionLeft, out skillSuccessDeflectionRight);
            }

            hasSkillPerfectDeflection = HasDeflection(config, "skill_perfect_deflection");
            if (hasSkillPerfectDeflection)
            {
                ReadDeflection(config, "skill_perfect_deflection", out skillPerfectDeflectionLeft, out skillPerfectDeflectionRight);
            }

            if (config.CheckKey("skill_pefect_flip_gold_probability"))
            {
                skillPefectFlipGoldProbability = config.GetFloat("skill_pefect_flip_gold_probability");
                skillPefectFlipGoldMin         = config.GetInt("skill_pefect_flip_gold_min", 0);
                skillPefectFlipGoldMax         = config.GetInt("skill_pefect_flip_gold_max", 0);
            }

            if (config.CheckKey("skill_ads_multiplier"))
            {
                skillAdsMultiplier = config.GetFloat("skill_ads_multiplier", 1);
            }

            skillTooltip = config.GetString("skill_tooltip", null);
            skillIcon    = config.GetString("skill_icon", null);
            skillAdsIcon = config.GetString("skill_ads_icon", null);
        }
Ejemplo n.º 3
0
        public void SendFightCreated(string enemyName, string enemyKnifeName, KnifeMode enemyKnifeMode)
        {
            _waitForReady = true;

            var msg = new FightCteatedMessage(_knifeIndex, enemyName, enemyKnifeName, enemyKnifeMode);

            _user.SendMsg(msg);
        }
Ejemplo n.º 4
0
        public void WriteChangeMode(float time, KnifeMode knifeMode)
        {
            EnsureBufferSize(m_position + 4 + 1 + 1);

            WriteSingle(m_data, ref m_position, time);
            m_data[m_position++] = (byte)ReplayCommandCode.ChangeMode;
            m_data[m_position++] = (byte)knifeMode;
        }
Ejemplo n.º 5
0
        public FightQueueMessage(string knifeName, KnifeMode knifeMode, string repliedMessageId = null) : base(repliedMessageId)
        {
            if (string.IsNullOrEmpty(knifeName))
            {
                throw new ArgumentException("message", nameof(knifeName));
            }

            KnifeName = knifeName;
            KnifeMode = knifeMode;
        }
Ejemplo n.º 6
0
        public bool ReadChangeMode(out KnifeMode knifeMode)
        {
            if (m_position + 1 > m_data.Length)
            {
                knifeMode = KnifeMode.Medium;
                return(false);
            }

            knifeMode = (KnifeMode)m_data[m_position++];
            return(true);
        }
Ejemplo n.º 7
0
        private void OnKnifeModeChanged(KnifeMode obj)
        {
            for (int i = 0; i < m_behaviours.Length; i++)
            {
                m_behaviours[i].PostKnifeModeChnaged(this, obj);
            }

            if (modeChanged != null)
            {
                modeChanged(obj);
            }
        }
Ejemplo n.º 8
0
        public void SetKnifeMode(KnifeMode knifeMode)
        {
            for (int i = 0; i < m_behaviours.Length; i++)
            {
                if (!m_behaviours[i].PreChangeKnifeMode(this, knifeMode))
                {
                    return;
                }
            }

            m_game.SetKnifeMode(m_knife, knifeMode);
        }
Ejemplo n.º 9
0
        public void SetKnifeMode(string knife, KnifeMode mode)
        {
            m_log.DebugFormat("SetKnifeMode: {0}", mode);

            m_knifeMode = mode;
            m_knife.def = GetKnifeFullDef(knife, m_knifeMode);
#if PHYSICS_DEBUG
            test = new TestKnifePhysicsModel(m_knife.def);
#endif
            if (knifeModeChanged != null)
            {
                knifeModeChanged(mode);
            }
        }
Ejemplo n.º 10
0
        public FightCteatedMessage(int knifeIndex, string userName, string knifeName, KnifeMode knifeMode, string repliedMessageId = null) : base(repliedMessageId)
        {
            if (string.IsNullOrEmpty(userName))
            {
                throw new ArgumentException("message", nameof(userName));
            }

            if (string.IsNullOrEmpty(knifeName))
            {
                throw new ArgumentException("message", nameof(knifeName));
            }

            KnifeIndex     = knifeIndex;
            EnemyUserName  = userName;
            EnemyKnifeName = knifeName;
            EnemyKnifeMode = knifeMode;
        }
Ejemplo n.º 11
0
        public Game(RawNode knivesSettings, RawNode settings)
        {
            m_rnd            = new Random();
            m_settings       = settings;
            m_knivesSettings = knivesSettings;

            m_knife = new Knife();
            m_knife.throwSuccess += OnKnifeThrowSuccess;

            m_score = 0;
            m_perfectFlipCounter = 0;
            m_knifeMode          = KnifeMode.Medium;

            m_stepAwardCalculator = new StepAwardCalculator(
                requiredScore: m_settings.GetIntArray("flips_bonus_flips"),
                awards: m_settings.GetIntArray("flips_bonus_gold")
                );
        }
Ejemplo n.º 12
0
        public static KnifeMode[] GetSupportedModes(RawNode knifeNode)
        {
            var modesNode      = knifeNode.GetNode("modes");
            var supportedModes = new KnifeMode[AllKnifeModes.Length];

            int count = 0;

            foreach (var mode in AllKnifeModes)
            {
                var key = GetKnifeModeKey(mode);
                if (modesNode.CheckKey(key))
                {
                    supportedModes[count++] = mode;
                }
            }

            Array.Resize(ref supportedModes, count);
            return(supportedModes);
        }
Ejemplo n.º 13
0
        public static string GetKnifeModeKey(KnifeMode knifeMode)
        {
            switch (knifeMode)
            {
            case KnifeMode.Slow:
                return("slow");

            case KnifeMode.Medium:
                return("medium");

            case KnifeMode.Fast:
                return("fast");

            case KnifeMode.VeryFast:
                return("veryfast");

            default:
                throw new ArgumentException("Undefined KnifeMode " + knifeMode, "knifeMode");
            }
        }
Ejemplo n.º 14
0
 public virtual bool PreChangeKnifeMode(ILocalGame game, KnifeMode knifeMode)
 {
     return(true);
 }
Ejemplo n.º 15
0
 public virtual void PostKnifeModeChnaged(ILocalGame game, KnifeMode knifeMode)
 {
 }
Ejemplo n.º 16
0
        public override bool PreChangeKnifeMode(ILocalGame game, KnifeMode knifeMode)
        {
            m_writer.WriteChangeMode(game.time, knifeMode);

            return(base.PreChangeKnifeMode(game, knifeMode));
        }
 public void SendFightCreated(string enemyName, string enemyKnifeName, KnifeMode enemyKnifeMode)
 {
     _fight.SetOneKnifeReady(_knifeIndex);
 }
Ejemplo n.º 18
0
 public Entry(IControllersFactory controllersFactory, string knifeName, KnifeMode knifeMode)
 {
     this.controllersFactory = controllersFactory ?? throw new ArgumentNullException(nameof(controllersFactory));
     this.knifeName          = knifeName ?? throw new ArgumentNullException(nameof(knifeName));
     this.knifeMode          = knifeMode;
 }
        public void GoToFightQueue(string knifeName, KnifeMode knifeMode)
        {
            FightQueueMessage fightQueueMessage = new FightQueueMessage(knifeName, knifeMode);

            _client.Messenger.SendMessage(fightQueueMessage);
        }
Ejemplo n.º 20
0
 public KnifeInfo(string knifeName, KnifeMode knifeMode)
 {
     this.knifeName = knifeName ?? throw new ArgumentNullException(nameof(knifeName));
     this.knifeMode = knifeMode;
 }
Ejemplo n.º 21
0
 public EnemyDef(string enemyUserName, string enemyKnifeName, KnifeMode enemyKnifeMode)
 {
     EnemyUserName  = enemyUserName ?? throw new ArgumentNullException(nameof(enemyUserName));
     EnemyKnifeName = enemyKnifeName ?? throw new ArgumentNullException(nameof(enemyKnifeName));
     EnemyKnifeMode = enemyKnifeMode;
 }