public RechargerInteraction(SpawnCommand p_command, Int32 p_parentID, Int32 p_commandIndex) : base(p_command, p_parentID, p_commandIndex) { m_parent = (Grid.FindInteractiveObject(m_parentID) as RechargingObject); if (m_parent == null) { throw new InvalidOperationException("Tried to add a RechargerInteraction to something that is not a Recharging Object!" + m_parentID); } }
internal void UpdateTime(Int32 p_minutes, ETimeChangeReason p_reason) { m_lastTime = m_time; m_time += new MMTime(p_minutes); if (DayState != LastDayState) { OnDayStateChanged(p_reason); } MMTime p_t = new MMTime(0, 8, m_time.Days); if (m_time >= p_t && m_lastTime < p_t) { Grid grid = LegacyLogic.Instance.MapLoader.Grid; foreach (GridSlot gridSlot in grid.SlotIterator()) { foreach (InteractiveObject interactiveObject in gridSlot.GetInteractiveObjectIterator()) { RechargingObject rechargingObject = interactiveObject as RechargingObject; if (rechargingObject != null) { rechargingObject.OnCheckRecharge(); } } } } if (p_reason == ETimeChangeReason.Movement && m_time.Hours == 0) { if ((p_minutes == 1 && m_time.Minutes == 1) || (p_minutes > 1 && m_time.Minutes > 0 && m_time.Minutes <= p_minutes)) { m_calendar.NextDay(); } } else if (p_reason == ETimeChangeReason.Resting) { m_calendar.SetDateByPassedTime(m_time.Days); } LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.GAMETIME_TIME_CHANGED, new GameTimeEventArgs(DayState, LastDayState, p_reason)); }
private void UpdateName(InteractiveObject p_interactiveObject) { Boolean flag = false; IEnumerable <InteractiveObjectTooltipStaticData> iterator = StaticDataHandler.GetIterator <InteractiveObjectTooltipStaticData>(EDataType.INTERACTIVE_OBJECT_TOOLTIPS); KeyCode keyCode = KeyConfigManager.KeyBindings[EHotkeyType.INTERACT].Key1; if (keyCode == KeyCode.None) { keyCode = KeyConfigManager.KeyBindings[EHotkeyType.INTERACT].AltKey1; } String text = m_actionColorHex + "[" + LocaManager.GetText("OPTIONS_INPUT_KEYNAME_" + keyCode.ToString().ToUpper()) + "][-]"; if (!String.IsNullOrEmpty(p_interactiveObject.Prefab)) { String directoryName = Path.GetDirectoryName(p_interactiveObject.Prefab); foreach (InteractiveObjectTooltipStaticData interactiveObjectTooltipStaticData in iterator) { if (interactiveObjectTooltipStaticData.PrefabFolder == directoryName || interactiveObjectTooltipStaticData.PrefabFolder == p_interactiveObject.Prefab) { m_label.text = LocaManager.GetText(interactiveObjectTooltipStaticData.LocaKey, text); flag = true; break; } } } if (p_interactiveObject is Button) { if (!flag) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_BUTTON", text); } return; } if (p_interactiveObject is Lever) { if (!flag) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_LEVER", text); } return; } if (!(p_interactiveObject is Barrel)) { if (p_interactiveObject is Container) { Container container = p_interactiveObject as Container; if (!container.IsEmpty()) { if (!flag) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_CONTAINER", text); } } else { foreach (SpawnCommand spawnCommand in container.Commands) { if (spawnCommand.Type == EInteraction.CHANGE_ATTRIBUTE) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_CONTAINER", text); return; } } m_label.text = String.Empty; } return; } if (p_interactiveObject is Door) { if (LegacyLogic.Instance.WorldManager.Party.SelectedInteractiveObject == null || p_interactiveObject.IsSecret) { m_label.text = String.Empty; return; } if (((Door)p_interactiveObject).State == EInteractiveObjectState.DOOR_OPEN) { m_label.text = String.Empty; } else { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_DOOR", text); } return; } else { if (p_interactiveObject is Sign) { if (!flag) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_SIGN", text); } return; } if (p_interactiveObject is Entrance) { if (flag) { return; } Entrance entrance = (Entrance)p_interactiveObject; String text2 = entrance.MinimapTooltipLocaKey; if (!String.IsNullOrEmpty(text2)) { text2 = LocaManager.GetText(entrance.MinimapTooltipLocaKey); m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_ENTRANCE", text, text2); return; } text2 = null; foreach (SpawnCommand spawnCommand2 in entrance.Commands) { if (spawnCommand2.Type == EInteraction.USE_ENTRANCE) { String[] array = spawnCommand2.Extra.Split(new Char[] { ',' }); text2 = array[0].Replace(".xml", String.Empty); break; } } if (text2 != null) { GridInfo gridInfo = LegacyLogic.Instance.MapLoader.FindGridInfo(text2); if (gridInfo != null) { text2 = LocaManager.GetText(gridInfo.LocationLocaName); if (LegacyLogic.Instance.MapLoader.Grid.Type == EMapType.DUNGEON) { text2 = text2.Replace("@", ", "); } else if (text2.LastIndexOf('@') != -1) { text2 = text2.Remove(text2.LastIndexOf('@')); } m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_ENTRANCE", text, text2); return; } Debug.LogError("Grid Info not found " + text2); } } else if (p_interactiveObject is NpcContainer) { NpcContainer npcContainer = (NpcContainer)p_interactiveObject; if (!npcContainer.IsEnabled) { m_label.text = String.Empty; return; } String minimapTooltipLocaKey = npcContainer.MinimapTooltipLocaKey; if (!String.IsNullOrEmpty(npcContainer.IndoorScene)) { if (!String.IsNullOrEmpty(minimapTooltipLocaKey)) { String text3 = LocaManager.GetText(minimapTooltipLocaKey); m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_BUILDING_DEFAULT", text, text3); return; } foreach (InteractiveObjectTooltipStaticData interactiveObjectTooltipStaticData2 in iterator) { if (interactiveObjectTooltipStaticData2.PrefabFolder == npcContainer.IndoorScene) { m_label.text = LocaManager.GetText(interactiveObjectTooltipStaticData2.LocaKey, text); return; } } m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_INDOOR_CONTEXT", text); return; } else { if (!npcContainer.Npcs[0].IsEnabled) { m_label.text = String.Empty; return; } foreach (SpawnCommand spawnCommand3 in npcContainer.Commands) { if (spawnCommand3.Type == EInteraction.START_DEFINED_DIALOG && !String.IsNullOrEmpty(spawnCommand3.Precondition) && spawnCommand3.Precondition.StartsWith("PARTY_CHECK")) { BasePrecondition basePrecondition = BaseInteraction.ParsePrecondition(spawnCommand3.Precondition); if (basePrecondition is PartyCheckPrecondition && !((PartyCheckPrecondition)basePrecondition).Evaluate()) { m_label.text = String.Empty; return; } } } if (flag) { return; } if (!String.IsNullOrEmpty(minimapTooltipLocaKey)) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_NPC", text, minimapTooltipLocaKey); return; } if (npcContainer.Npcs[0].StaticID != 224 && npcContainer.Npcs[0].StaticID != 225) { String text4 = LocaManager.GetText(npcContainer.Npcs[0].StaticData.NameKey); m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_NPC", text, text4); return; } } } else if (p_interactiveObject is RechargingObject) { RechargingObject rechargingObject = (RechargingObject)p_interactiveObject; if (rechargingObject.IsFountain()) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_FOUNTAIN", text); } else if (rechargingObject.IsCrystal()) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_CRYSTAL", text); } else { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_STATUE", text); } return; } m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_FALLBACK", text); } return; } Barrel barrel = p_interactiveObject as Barrel; if (barrel.State == EInteractiveObjectState.BARREL_EMPTY) { m_label.text = String.Empty; return; } if (barrel.State == EInteractiveObjectState.BARREL_OPEN) { m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_FALLBACK", text); return; } m_label.text = LocaManager.GetText("INTERACT_TOOLTIP_BARREL", text); }