Beispiel #1
0
 private void Init(string identifier, List <NarrationInfo> list)
 {
     narrativeIdentifier        = identifier;
     narrationInfoList          = list;
     currentNarrationFrameIndex = -1;
     teleType = dialogText.GetComponent <TeleType>();
     SetupView();
     ShowNextFrame();
 }
    // Use this for initialization
    void Start()
    {
        teleType   = demoText.GetComponent <TeleType>();
        starScaler = stars.GetComponent <StarScaler>();



        if (!demoText)
        {
            Debug.Log("DemoText Game Object not set...");
        }

        StartCoroutine("DemoSequence");
    }
Beispiel #3
0
        private void SystemTimer_Tick(object sender, EventArgs e)
        {
            byte chr;
            int  value;

            Address4.Value(Computer.Address[3]);
            Address3.Value(Computer.Address[2]);
            Address2.Value(Computer.Address[1]);
            Address1.Value(Computer.Address[0]);
            Data2.Value(Computer.Data[1]);
            Data1.Value(Computer.Data[0]);
            TapeCounter.Text = Computer.TapeDeck.TapeCounter().ToString();
            chr = Computer.TeleType.NextPrintByte();
            while (chr != 0)
            {
                TeleType.AppendText(((char)chr).ToString());
                if (tapePunch.Running)
                {
                    tapePunch.Punch(chr);
                }
                chr = Computer.TeleType.NextPrintByte();
            }
            if (tapeReader.Running)
            {
                value = tapeReader.Next();
                if (value >= 0)
                {
                    Computer.TeleType.Send((byte)value);
                }
            }
            if (Computer.cpu.Debug && !Computer.cpu.NextStep && !singleStepRead)
            {
                DebugA.Text   = Computer.cpu.ac.ToString("X2");
                DebugX.Text   = Computer.cpu.x.ToString("X2");
                DebugY.Text   = Computer.cpu.y.ToString("X2");
                DebugPC.Text  = Computer.cpu.pc.ToString("X2");
                DebugS.Text   = Computer.cpu.sp.ToString("X2");
                FlagN.Visible = ((Computer.cpu.flags & 0x80) == 0x80);
                FlagV.Visible = ((Computer.cpu.flags & 0x40) == 0x40);
                FlagB.Visible = ((Computer.cpu.flags & 0x10) == 0x10);
                FlagD.Visible = ((Computer.cpu.flags & 0x08) == 0x08);
                FlagI.Visible = ((Computer.cpu.flags & 0x04) == 0x04);
                FlagZ.Visible = ((Computer.cpu.flags & 0x02) == 0x02);
                FlagC.Visible = ((Computer.cpu.flags & 0x01) == 0x01);
                DebugOutput.AppendText(Computer.cpu.DebugOutput + "\r\n");
                singleStepRead = true;
            }
        }
Beispiel #4
0
        public static string Name(this TeleType type)
        {
            switch (type)
            {
            case TeleType.Next:
                return("Next Level");

            case TeleType.Misc:
                return("Misc Location");

            case TeleType.WP:
                return("Waypoint");

            case TeleType.Prev:
                return("Previous Level");

            default:
                break;
            }

            return("<Unknown>");
        }
Beispiel #5
0
        /// <summary>
        /// Teleports an entity to a specified destination
        /// </summary>
        /// <param name="entity">The entity to teleport</param>
        /// <param name="Destination">The destination of the entity</param>
        /// <param name="teleType">How fast the teleportation should take</param>
        /// <param name="teleportColor">The color of the teleportation effects</param>
        /// <param name="flashSprite">Whether the sprite on the entity should flash or not. This only works if the entity has a <see cref="SpriteRenderer"/> and a <see cref="WeaverCore.Components.SpriteFlasher"/> If a <see cref="WeaverCore.Components.SpriteFlasher"/> is not already on the entity, one will be created</param>
        /// <param name="playEffects">Whether the teleportation effects should be played.</param>
        /// <returns>Returns the amount of time the teleportation will take. You can use this if you want to wait until the teleportation is done</returns>
        public static float TeleportEntity(GameObject entity, Vector3 Destination, TeleType teleType = TeleType.Quick, Color teleportColor = default(Color), bool flashSprite = true, bool playEffects = true, float audioPitch = 1f)
        {
            float inTime  = 0.0f;
            float outTime = 0.0f;

            switch (teleType)
            {
            case TeleType.Quick:
                inTime  = 0.0f;
                outTime = 0.1f;
                break;

            case TeleType.Delayed:
                inTime  = 0.05f;
                outTime = 0.1f;
                break;

            default:
                break;
            }
            return(TeleportEntity(entity, Destination, inTime, outTime, teleportColor, flashSprite, playEffects, audioPitch));
        }
Beispiel #6
0
 private void TeletypeClearButton_Click(object sender, EventArgs e)
 {
     TeleType.Clear();
 }
Beispiel #7
0
        public void ManageTele(TeleType type)
        {
            if (IsTeleporting)
            {
                return;
            }

            Level lvl;

            if (!game.GetPlayerLevel(out lvl))
            {
                return;
            }

            if (game.HasSkill(SkillType.Teleport))
            {
                Logger.AutoTele.Log(game, LogType.Warning, "You don't have teleport skill.");
                return;
            }

            var p = TeleportInfo.Vectors[lvl.dwLevelNo * 4 + (uint)type].Clone();

            var areas = new List <uint>();

            areas.Add(lvl.dwLevelNo);

            if (lvl.dwLevelNo == (uint)Map.A2_CANYON_OF_THE_MAGI)
            {
                if (p.Type == TeleportTargetType.None && p.Id == 0)
                {
                    var pMisc = lvl.pMisc;
                    if (pMisc != 0)
                    {
                        var misc = game.Debugger.Read <ActMisc>(pMisc);
                        if (misc.dwStaffTombLevel != 0)
                        {
                            p.Type = TeleportTargetType.Exit;
                            p.Id   = misc.dwStaffTombLevel;
                        }
                    }
                }
            }
            else if (lvl.dwLevelNo == (uint)Map.A1_COLD_PLAINS)
            {
            }
            else if (lvl.dwLevelNo == (uint)Map.A4_THE_CHAOS_SANCTUARY && p.Id2 >= 1337 && p.Id2 <= 1341)
            {
                /*if (CSID == 3)
                 *  CSID = 0;
                 * else
                 ++CSID;
                 *
                 * p.Id = */
            }

            if (p.Id == 0)
            {
                Logger.AutoTele.Log(game, LogType.Warning, "There is no \"{0}\" path for current level.", type.Name());
                return;
            }

            if (p.Area != 0)
            {
                areas.Add((byte)p.Area);
            }

            doInteract = false;

            if (p.Type == TeleportTargetType.Exit)
            {
                var g_collisionMap = game.MapHandler.GetCollisionData(areas.ToArray());
                if (!g_collisionMap.m_map.IsCreated())
                {
                    return;
                }

                var ExitArray = game.MapHandler.GetLevelExits(areas[0]);
                if (ExitArray.Count == 0)
                {
                    return;
                }

                foreach (var exit in ExitArray)
                {
                    if (exit.dwTargetLevel == p.Id)
                    {
                        var pLevelTxt = game.Debugger.Call <IntPtr>(D2Common.GetLevelText,
                                                                    MagicConvention.StdCall,
                                                                    p.Id);
                        var lvltext = game.Debugger.Read <LevelTxt>(pLevelTxt);

                        doInteract = false;
                        if (exit.dwType == (uint)ExitType.Tile)
                        {
                            doInteract   = true;
                            interactType = TeleportTargetType.Tile;
                            interactRoom = exit.pRoom2;
                        }

                        var nodes = MakePath(exit.ptPos.X, exit.ptPos.Y, areas, exit.dwType == (uint)ExitType.Level);
                        if (nodes != 0)
                        {
                            Logger.AutoTele.Log(game, LogType.None, "Going to {0}, {1} nodes.", lvltext.szName, nodes);
                        }
                        else
                        {
                            Logger.AutoTele.Log(game, LogType.Warning, "Failed to calculate path to {0}.", lvltext.szName);
                        }
                        break;
                    }
                }

                return;
            }

            if (p.Type == TeleportTargetType.XY)
            {
                doInteract = false;
                if (p.Id == 0 || p.Id2 == 0)
                {
                    Logger.AutoTele.Log(game, LogType.Warning, "Failed to make path to \"{0}\" point.", type.Name());
                    return;
                }

                var nodes = MakePath((int)p.Id, (int)p.Id2, areas, false);
                if (nodes != 0)
                {
                    Logger.AutoTele.Log(game, LogType.None, "Going to \"{0}\" X: {1}, Y: {2}, {3} nodes.", type.Name(), p.Id, p.Id2, nodes);
                }
                else
                {
                    Logger.AutoTele.Log(game, LogType.Warning, "Failed to make path to \"{0}\" point.", type.Name());
                }
                return;
            }

            var presetUnit = FindPresetLocation((uint)p.Type, p.Id, areas[areas.Count - 1]);

            if (!presetUnit.IsEmpty)
            {
                if (p.Type == TeleportTargetType.Tile || p.Type == TeleportTargetType.Object && p.Id == 298)
                {
                    doInteract = true;
                }
                else if (p.Type == TeleportTargetType.Object && waypoints.Contains(p.Id))
                {
                    doInteract = true;
                }

                var nodes = MakePath(presetUnit.X, presetUnit.Y, areas, false);
                if (nodes != 0)
                {
                    if (p.Type == TeleportTargetType.Object)
                    {
                        var pObjectTxt = game.Debugger.Call <IntPtr>(D2Common.GetObjectTxt, MagicConvention.StdCall, p.Id);
                        var txt        = game.Debugger.Read <ObjectTxt>(pObjectTxt);
                        Logger.AutoTele.Log(game, LogType.None, "Going to {0}, {1} nodes.", txt.szName, nodes);
                    }
                    interactType = p.Type;
                }
                else
                {
                    Logger.AutoTele.Log(game, LogType.Warning, "Failed to make path to \"{0}\" point.", type.Name());
                }
            }
            else
            {
                Logger.AutoTele.Log(game, LogType.Warning, "Failed to make path to \"{0}\" point.", type.Name());
            }
        }
 // Start is called before the first frame update
 void Start()
 {
     interactable = false;
     script       = textBubble.GetComponent <TeleType>();
 }
Beispiel #9
0
 // Start is called before the first frame update
 void Awake()
 {
     roomNavigation    = GetComponent <RoomNavigation>();
     textInput         = GetComponent <TextInput>();
     interactableItems = GetComponent <InteractableItems>();
     registerObjects   = GetComponent <RegisterObjects>();
     registerRooms     = GetComponent <RegisterRooms>();
     map                  = GetComponent <MiniMap>();
     debugClass           = GetComponent <DebugMode>();
     additionalNarrations = GetComponent <AdditionalNarrations>();
     npcTalk              = GetComponent <NPCTalk>();
     npcInteraction       = GetComponent <NPCInteraction>();
     demoScript           = GetComponent <DemoScript>();
     achievements         = GetComponent <Achievements>();
     combat               = GetComponent <Combat>();
     teleType             = GetComponent <TeleType>();
     introScreen          = GetComponent <IntroScreen>();
     GameObject.Find("MainScrollRect").GetComponent <ScrollRect>().verticalNormalizedPosition = 0.5f;
     //enterToContinue = false;
     //escToContinue = false;
     //toResumeEscToContinue = false;
     //exitPopUp = false;
     debugMode              = false;
     secondQuestActive      = false;
     currentActiveInput     = "main";
     ego.equippedWeapon     = null;
     ego.equippedArmor      = null;
     ego.equippedShield     = null;
     ego.chosenAction       = "";
     ego.allStats[0].value  = 100;
     ego.allStats[1].value  = 100;
     ego.allStats[2].value  = 100;
     ego.allStats[3].value  = 0;
     ego.allStats[4].value  = 1;
     ego.allStats[5].value  = 0;
     ego.allStats[6].value  = 4;
     ego.allStats[7].value  = 0;
     ego.allStats[8].value  = 1.5f;
     ego.allStats[9].value  = 0;
     ego.allStats[10].value = 0;
     for (int i = 0; i < ego.allStats.Length; i++)
     {
         ego.allStats[i].effectValue = 0;
     }
     ego.activeEffects.Clear();
     ego.defeatedBadGuys.Clear();
     ego.blueCrystals   = 0;
     ego.bankedCrystals = 0;
     ego.fightClubRank  = 0;
     ego.fleeLocation   = "";
     ego.conversation   = 0;
     ego.currentInit    = 0;
     ego.displayAction  = "";
     ego.chosenAction   = "";
     ego.chosenItem     = null;
     ego.chosenItem2    = null;
     ego.chosenTarget   = null;
     ego.potionBelt.Clear();
     //enterToContinueDialogue = false;
     //timeDelay = 1;
     sentences = new Queue <string>();
     pauses    = new Queue <int>();
     //ego = Instantiate(ego);
 }