示例#1
0
            static void Prefix(HellTrain __instance)
            {
                int gain = 0;
                int prev = totalTickets;

                try
                {
                    gain          = (int)Traverse.Create(__instance).Field("_otherCreatureWorkCount").GetValue();
                    totalTickets += gain;
                }
                catch (Exception excep)
                {
                    FileLog.Log("Exception thrown in getting Tickets:");
                    FileLog.Log(excep.ToString());
                }

                try
                {
                    __instance.model.ShowNarrationForcely(string.Format(trainDialogueMath, prev, gain, totalTickets));
                }
                catch (Exception excep)
                {
                    FileLog.Log("Exception in showing Narration");
                    FileLog.Log(excep.ToString());
                }
            }
示例#2
0
 static void Postfix(HellTrain __instance)
 {
     if (totalTickets >= ticketsRequired)
     {
         Present(ref __instance);
     }
 }
示例#3
0
        private static void Present(ref HellTrain instance)
        {
            bool       showDialogue = false;
            AgentModel curAgent     = (AgentModel)Traverse.Create(instance).Field("curAgent").GetValue();

            if (InventoryModel.Instance.CheckEquipmentCount(trainArmorID))
            {
                var armor = InventoryModel.Instance.CreateEquipment(trainArmorID);
                if (!curAgent.HasEquipment(trainArmorID))
                {
                    curAgent.SetArmor((ArmorModel)armor);
                }
                instance.model.ShowNarrationForcely(trainDialogueThanks);
                showDialogue = true;
            }

            if (InventoryModel.Instance.CheckEquipmentCount(trainWeaponID))
            {
                var weapon = InventoryModel.Instance.CreateEquipment(trainWeaponID);
                if (!curAgent.HasEquipment(trainWeaponID))
                {
                    curAgent.SetWeapon((WeaponModel)weapon);
                }
                if (!showDialogue)
                {
                    instance.model.ShowNarrationForcely(trainDialogueThanks);
                }
                showDialogue = true;
            }

            EGOgiftModel gift = EGOgiftModel.MakeGift(EquipmentTypeList.instance.GetData(trainGiftID));

            curAgent.AttachEGOgift(gift);
            if (!showDialogue)
            {
                instance.model.ShowNarrationForcely(trainDialogueThanks);
            }
            showDialogue = true;


            totalTickets -= ticketsRequired;
        }