コード例 #1
0
        private void OnCurrencyPreReward(object sender, RewardEventArgs e)
        {
            var session = TryGetOrCreateSession(e.PlayerName);

            if (session != null)
            {
                if (session.Class.LevelingCurrency == e.Currency)
                {
                    //originally from KillNpc()
                    //var expAmount = (long)Math.Round((double)kvp.Value / total *
                    //							config.NpcNameToExpReward.Get(npc.GivenOrTypeName, npc.lifeMax) *
                    //							( session.Class.ExpMultiplierOverride ?? 1.0 ) * config.ExpMultiplier);

                    //TODO Start adapting old npc exp overrides... but this wont really work as is -- we need an overhaul
                    //if(e.RewardReason == RewardReason.Killing)
                    //{
                    //	var expValues = session.Class.Definition.ParsedNpcNameToExpValues;
                    //	//var result = rewardValue;
                    //	var killReward = (KillingReward)e.Reward;

                    //	if( expValues.TryGetValue(killReward.NpcGivenOrTypeName, out var newValue) == true )
                    //	{
                    //		Debug.Print($"ClassExpReward adjusted to {newValue}(was {e.RewardValue}).");
                    //		e.RewardValue = newValue;
                    //	}
                    //}

                    e.RewardValue = e.RewardValue *
                                    (decimal)((session.Class.ExpMultiplierOverride ?? 1.0) * Config.Instance.ExpMultiplier);
                }
            }
        }
コード例 #2
0
        public void invoke(RewardEventArgs e)
        {
            while (Runing)
            {
                Thread.Sleep(100);
            }
            Runing = true;
            string scripd = Script;

            if (scripd.Contains("%"))
            {
                if (scripd.Contains("%TEXT%"))
                {
                    scripd = scripd.Replace("%TEXT%", e.Text.Replace("\n", "").Trim());
                }
                if (scripd.Contains("%NICK%"))
                {
                    scripd = scripd.Replace("%NICK%", e.NickName.Replace("\n", "").Trim());
                }
                if (scripd.Contains("%TITLE%"))
                {
                    scripd = scripd.Replace("%TITLE%", e.Title.Replace("\n", "").Trim());
                }
                //if (scripd.Contains("%TEXT%"))
                //  scripd = scripd.Replace("%TEXT%", e.Text.Replace("\n", ""));
            }
            ScriptLanguage.RunScript(scripd);
            Runing = false;
        }
コード例 #3
0
        public void Invoke(RewardEventArgs e)
        {
            while (Runing)
            {
                Thread.Sleep(100);
            }
            Runing = true;
            string scripd = Script;

            if (scripd != null && scripd.Contains("%"))
            {
                if (scripd.Contains("%TEXT%"))
                {
                    scripd = scripd.Replace("%TEXT%", e.Text.Replace("\n", "").Trim());
                }
                if (scripd.Contains("%NICK%"))
                {
                    scripd = scripd.Replace("%NICK%", e.NickName.Replace("\n", "").Trim());
                }
                if (scripd.Contains("%TITLE%"))
                {
                    scripd = scripd.Replace("%TITLE%", e.Title.Replace("\n", "").Trim());
                }
            }
            if (DeferredRun && !runEveryTime)
            {
                Deferred.Add(scripd);
                Runing = false;
            }
            else
            {
                if (scripd.Contains("%DATA%"))
                {
                    scripd = scripd.Replace("%DATA%", DefereData);
                }
                ScriptLanguage.RunScript(scripd);
                if (DeferredRun)
                {
                    Thread.Sleep(1000);
                }
                Runing = false;
            }
        }
コード例 #4
0
ファイル: RewardPanel.cs プロジェクト: hariajie/game-of-peat
 void Instance_RewardAdded(object sender, RewardEventArgs e)
 {
     PanelManager.Instance.Push(this, e.Valuables);
 }