Пример #1
0
        private static void ProcessMobReset(ResetData reset, IRepositoryManager dbManager)
        {
            var mobTemplate = dbManager.MOBILETEMPLATES.Values.FirstOrDefault(x => x.ID == reset.Args.ToList()[0]);

            if (mobTemplate == null)
            {
                // todo bug
                return;
            }

            var room = dbManager.ROOMS.Get(reset.Args.ToList()[2]);

            if (room == null)
            {
                // todo bug
                return;
            }

            if (!reset.sreset)
            {
                return;                 // todo what does sreset mean?
            }
            var mob = dbManager.CHARACTERS.Create(mobTemplate);

            // todo finish mob reset

            // todo sub-resets allowed are Equip/Give
            // todo sub-sub-resets allowed are Hidden, Put
        }
Пример #2
0
        public static void Process(this ResetData reset, IRepositoryManager repositoryManager = null)
        {
            var dbManager = repositoryManager ?? RepositoryManager.Instance;

            if (ProcessTable.ContainsKey(reset.Type))
            {
                ProcessTable[reset.Type].Invoke(reset, dbManager);
            }
        }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     StartMenu.SetActive(true);
     WorldsChoose.SetActive(false);
     LevelsChoose.SetActive(false);
     LoadingScreen.SetActive(true);
     CharacterChoose.SetActive(false);
     rs = new ResetData();
     //  rs.UnlockAll();
 }
Пример #4
0
        public void AddReset(string type, int extra, int arg1, int arg2, int arg3)
        {
            var newReset = new ResetData
            {
                Type    = Realm.Library.Common.Extensions.EnumerationExtensions.GetEnumIgnoreCase <ResetTypes>(type),
                Extra   = extra,
                Command = type[0].ToString()
            };

            newReset.SetArgs(arg1, arg2, arg3);
            Resets.Add(newReset);
        }
Пример #5
0
        private static void ProcessRandomizeReset(ResetData reset, IRepositoryManager dbManager)
        {
            var room = dbManager.ROOMS.Get(reset.Args.ToList()[0]);

            if (room == null)
            {
                // todo bug
                return;
            }

            // todo randomize_exits(reset.Args.ToList()[1]);
        }
Пример #6
0
        public static ResetData LuaCreateReset(string resetType, int extra, int arg1, int arg2, int arg3)
        {
            var newReset = new ResetData
            {
                Type  = EnumerationExtensions.GetEnumIgnoreCase <ResetTypes>(resetType),
                Extra = extra
            };

            newReset.SetArgs(arg1, arg2, arg3);

            _luaManager.Proxy.CreateTable("reset");
            AddLastObject(newReset);

            _logManager.Boot("Reset '{0}' created", resetType);
            return(newReset);
        }
 public void Initialize()
 {
     data = new ResetData
     {
         CurrentTransition = 0,
         GroupedProperties = new List <DisplayTransition>(),
         Dependencies      = new ResetDependencies
         {
             ToggledIndex                = 0,
             FromStates                  = new List <Object>(),
             SerializedObject            = null,
             Transitions                 = null,
             GroupedTransitions          = new Dictionary <Object, List <DisplayTransition> >(),
             TransitionTableEditor       = null,
             TransitionsByFromStates     = new List <List <DisplayTransition> >(),
             ApplyingModifications       = false,
             AppliedModificationsMessage = ""
         }
     };
 }
Пример #8
0
        private static void ProcessDoorReset(ResetData reset, IRepositoryManager dbManager)
        {
            var room = dbManager.ROOMS.Get(reset.Args.ToList()[0]);

            var exit = room?.GetExit(reset.Args.ToList()[1]);

            if (exit == null)
            {
                // todo not found error
                return;
            }

            var resetStyle = reset.Args.ToList()[2];

            switch (resetStyle)
            {
            case 0:
                exit.Flags = exit.Flags.RemoveBit(ExitFlags.Closed);
                exit.Flags = exit.Flags.RemoveBit(ExitFlags.Locked);
                break;

            case 1:
                exit.Flags = exit.Flags.SetBit(ExitFlags.Closed);
                exit.Flags = exit.Flags.RemoveBit(ExitFlags.Locked);
                if (exit.Flags.IsSet(ExitFlags.xSearchable))
                {
                    exit.Flags = exit.Flags.SetBit(ExitFlags.Secret);
                }
                break;

            case 2:
                exit.Flags = exit.Flags.SetBit(ExitFlags.Closed);
                exit.Flags = exit.Flags.SetBit(ExitFlags.Locked);
                if (exit.Flags.IsSet(ExitFlags.xSearchable))
                {
                    exit.Flags = exit.Flags.SetBit(ExitFlags.Secret);
                }
                break;
            }
        }
Пример #9
0
        private static void ProcessTrapReset(ResetData reset, IRepositoryManager dbManager)
        {
            if (reset.Extra.IsSet(TrapTriggerTypes.Object))
            {
                // todo object trap in room reset
                return;
            }

            var room = dbManager.ROOMS.Get(reset.Args.ToList()[2]);

            if (room == null)
            {
                // todo bug
                return;
            }

            // todo finish trap reset
            //    if (room->area->nplayer > 0
            //        || count_obj_list(get_obj_index(OBJ_VNUM_TRAP), pRoomIndex->first_content) > 0)
            //        break;
            //    to_obj = make_trap(pReset->arg1, pReset->arg1, 10, pReset->extra);
            //    obj_to_room(to_obj, pRoomIndex);
        }
Пример #10
0
        static bool LoadAreaFiles()
        {
            string listContents;

            try
            {
                listContents = Encoding.ASCII.GetString(File.ReadAllBytes(Path.Combine(areaPath, areaList)));
            }
            catch (Exception e)
            {
                log.Error(e.Message);
                return(false);
            }

            using (var sr = new StringReader(listContents))
            {
                for (;;)
                {
                    var curFile = sr.ReadLine().Trim();
                    if (string.IsNullOrWhiteSpace(curFile))
                    {
                        continue;
                    }
                    if (curFile.StartsWith("$"))
                    {
                        break;
                    }

                    if (curFile.StartsWith("-"))
                    {
                        // ??????
                        // fpArea = stdin;
                        continue;
                    }

                    log.Info($"loadding {curFile}");
                    string areaContents;
                    try
                    {
                        areaContents = Encoding.ASCII.GetString(File.ReadAllBytes(Path.Combine(areaPath, curFile)));
                    }
                    catch (Exception e)
                    {
                        log.Error(e.Message);
                        return(false);
                    }


                    using (var ar = new StringReader(areaContents))
                    {
                        AreaData lastArea = null;
                        for (;;)
                        {
                            var word = ar.ReadWord();
                            if (!word.StartsWith("#"))
                            {
                                return(false);
                            }

                            word = word.Substring(1);
                            if (word.StartsWith("$"))
                            {
                                break;
                            }

                            switch (word)
                            {
                            case "AREA":
                                lastArea = AreaData.Load(ar, curFile);
                                break;

                            case "HELPS":
                                HelpData.LoadFromArea(ar);
                                break;

                            case "MOBILES":
                                MobileDef.LoadFromArea(ar, lastArea);
                                break;

                            case "OBJECTS":
                                ObjectDef.LoadFromArea(ar, lastArea);
                                break;

                            case "RESETS":
                                ResetData.LoadFromArea(ar);
                                break;

                            case "ROOMS":
                                RoomDef.LoadFromArea(ar, lastArea);
                                break;

                            case "SHOPS":
                                ShopData.LoadFromArea(ar);
                                break;

                            case "SPECIALS":
                                SpecType.LoadFromArea(ar);
                                break;

                            // OLC
                            case "AREADATA":
                                lastArea = AreaData.NewLoad(ar, curFile);
                                break;

                            // OLC 1.1b
                            case "ROOMDATA":
                                RoomDef.NewLoadFromArea(ar, lastArea);
                                break;

                            default:
                                log.Error($"Boot_db: bad section name '{word}'.");
                                return(false);
                            }
                        }
                    }
                }

                return(true);
            }
        }
Пример #11
0
 public ItemReset(ResourceData data) : base(data)
 {
     this.resetData = (ResetData)data;
 }
Пример #12
0
 private static void ProcessObjectReset(ResetData reset, IRepositoryManager dbManager)
 {
     // todo sub-resets allowed are Hidden, Trap, Put
 }
Пример #13
0
 public static void translate_reset(ResetData reset, renumber_areas r_data)
 {
     // TODO
 }
Пример #14
0
 public static void delete_reset(ResetData pReset)
 {
     // TODO
 }
Пример #15
0
 public static string sprint_reset(ResetData pReset, short num)
 {
     // TODO
     return(string.Empty);
 }
Пример #16
0
 public void AddReset(ResetData reset) => Resets.Add(reset);