예제 #1
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.tag == "Door")
     {
         door = collision.GetComponent <DoorTeleporter>();
     }
 }
예제 #2
0
    private void Start()
    {
        DoorTeleporter Teleporter = GetComponentInChildren <DoorTeleporter>();

        Teleporter.LinkedDoorTeleporter = LinkedDoor.GetComponentInChildren <DoorTeleporter>();
        Teleporter.TeleportSoundPrefab  = TeleportSoundPrefab;
    }
예제 #3
0
 private void OnTriggerExit2D(Collider2D collision)
 {
     if (collision.tag == "Door")
     {
         if (door == collision.GetComponent <DoorTeleporter>())
         {
             door = null;
         }
     }
 }
예제 #4
0
        public static string Construct(Item item)
        {
            string s;

            int itemID = item.ItemID;

            if (item is BaseAddon)
            {
                for (int i = 0; i < ((BaseAddon)item).Components.Count; i++)
                {
                    if (((BaseAddon)item).Components[i].Offset == Point3D.Zero)
                    {
                        itemID = ((BaseAddon)item).Components[i].ItemID;
                        break;
                    }
                }
            }

            if (item is LocalizedStatic)
            {
                Add("LabelNumber", ((LocalizedStatic)item).Number.ToString());
            }
            else if (item is LocalizedSign)
            {
                Add("LabelNumber", ((LocalizedSign)item).Number.ToString());
            }
            else if (item is AnkhWest)
            {
                Add("Bloodied", (item.ItemID == 0x1D98).ToString());
            }
            else if (item is AnkhNorth)
            {
                Add("Bloodied", (item.ItemID == 0x1E5D).ToString());
            }
            else if (item is MarkContainer)
            {
                Add("Bone", ((MarkContainer)item).Bone.ToString());
                Add("Locked", ((MarkContainer)item).AutoLock.ToString());
                if (((MarkContainer)item).TargetMap != null)
                {
                    Add("TargetMap", ((MarkContainer)item).TargetMap.ToString());
                }
            }
            else if (item is WarningItem)
            {
                Add("Range", ((WarningItem)item).Range.ToString());
                if (VS(((WarningItem)item).WarningString))
                {
                    Add("WarningString", ((WarningItem)item).WarningString);
                }
                Add("WarningNumber", ((WarningItem)item).WarningNumber.ToString());
                if (item is HintItem)
                {
                    if (VS(((HintItem)item).HintString))
                    {
                        Add("HintString", ((HintItem)item).HintString);
                    }
                    Add("HintNumber", ((HintItem)item).HintNumber.ToString());
                }
                Add("Range", ((WarningItem)item).ResetDelay.ToString());
            }
            else if (item is SerpentPillar)
            {
                if (VS(((SerpentPillar)item).Word))
                {
                    Add("Word", ((SerpentPillar)item).Word);
                }
                Add("DestStart", ((SerpentPillar)item).Destination.Start.ToString());
                Add("DestEnd", ((SerpentPillar)item).Destination.End.ToString());
            }
            else if (item.GetType().IsSubclassOf(typeof(BaseBeverage)))
            {
                Add("Content", ((BaseBeverage)item).Content.ToString());
            }
            else if (item.GetType().IsSubclassOf(typeof(BaseDoor)))
            {
                if ((item.ItemID == 0x3B1))
                {
                    Add("Facing", "WestSS");
                }
                else if ((item.ItemID == 0x3B2))
                {
                    Add("Facing", "SouthSW");
                }
                else if ((item.ItemID == 1663) ||
                         (item.ItemID == 1743) ||
                         (item.ItemID == 1695) ||
                         (item.ItemID == 1711) ||
                         (item.ItemID == 1759) ||
                         (item.ItemID == 1775) ||
                         (item.ItemID == 2115) ||
                         (item.ItemID == 2160) ||
                         (item.ItemID == 1727) ||
                         (item.ItemID == 846) ||
                         (item.ItemID == 830) ||
                         (item.ItemID == 798) ||
                         (item.ItemID == 242) ||
                         (item.ItemID == 814) ||
                         (item.ItemID == 862) ||
                         (item.ItemID == 2134) ||
                         (item.ItemID == 2094) ||
                         (item.ItemID == 1679) ||
                         (item.ItemID == 8183))
                {
                    Add("Facing", "NorthCCW");
                }
                else if ((item.ItemID == 1661) ||
                         (item.ItemID == 1741) ||
                         (item.ItemID == 1693) ||
                         (item.ItemID == 1709) ||
                         (item.ItemID == 1757) ||
                         (item.ItemID == 1773) ||
                         (item.ItemID == 2113) ||
                         (item.ItemID == 2158) ||
                         (item.ItemID == 1725) ||
                         (item.ItemID == 844) ||
                         (item.ItemID == 828) ||
                         (item.ItemID == 796) ||
                         (item.ItemID == 240) ||
                         (item.ItemID == 812) ||
                         (item.ItemID == 860) ||
                         (item.ItemID == 2132) ||
                         (item.ItemID == 2092) ||
                         (item.ItemID == 1677) ||
                         (item.ItemID == 8181))
                {
                    Add("Facing", "SouthCW");
                }
                else
                {
                    Add("Facing", GetFacing(((BaseDoor)item).Offset).ToString());
                }
            }

            if (item is BaseLight)
            {
                if (!((BaseLight)item).Burning)
                {
                    Add("Unlit", String.Empty);
                }
                if (!((BaseLight)item).Protected)
                {
                    Add("Unprotected", String.Empty);
                }
            }
            else if (item is Spawner)
            {
                Spawner sp = (Spawner)item;

                for (int i = 0; i < sp.SpawnNames.Count; i++)
                {
                    if (VS(sp.SpawnNames[i]))
                    {
                        Add("Spawn", sp.SpawnNames[i]);
                    }
                }
                // if( sp.MinDelay > TimeSpan.Zero )
                Add("MinDelay", sp.MinDelay.ToString());
                // if( sp.MaxDelay > TimeSpan.Zero )
                Add("MaxDelay", sp.MaxDelay.ToString());
                // if( sp.NextSpawn > TimeSpan.Zero )
                //Add("NextSpawn", sp.NextSpawn.ToString());
                // if( sp.Count > 0 )
                Add("Count", sp.Count.ToString());
                // if( sp.Team > 0 )
                //Add("Team", sp.Team.ToString());
                // if( sp.HomeRange > 0 )
                Add("HomeRange", sp.HomeRange.ToString());
                // if( sp.Running )
                Add("Running", sp.Running.ToString());
                // if( sp.Group )
                Add("Group", sp.Group.ToString());
            }
            else if (item is RecallRune)
            {
                RecallRune rune = (RecallRune)item;

                if (VS(rune.Description))
                {
                    Add("Description", rune.Description);
                }
                Add("Marked", rune.Marked.ToString());
                if (rune.TargetMap != null)
                {
                    Add("TargetMap", rune.TargetMap.ToString());
                }
                Add("Target", rune.Target.ToString());
            }
            else if (item is DoorTeleporter)
            {
                DoorTeleporter tp = (DoorTeleporter)item;
                Add("PointDest", tp.PointDest.ToString());
                if (tp.MapDest != null)
                {
                    Add("MapDest", tp.MapDest.ToString());
                }
                Add("Creatures", tp.Creatures.ToString());
                Add("SourceEffect", tp.SourceEffect.ToString());
                Add("DestEffect", tp.DestEffect.ToString());
                Add("SoundID", tp.SoundID.ToString());
                Add("Delay", tp.Delay.ToString());
            }
            else if (item is PublicDoor)
            {
                PublicDoor tp = (PublicDoor)item;
                Add("PointDest", tp.PointDest.ToString());
                if (tp.MapDest != null)
                {
                    Add("MapDest", tp.MapDest.ToString());
                }
            }
            else if (item is moongates)
            {
                moongates tp = (moongates)item;
                Add("PointDest", tp.PointDest.ToString());
                if (tp.MapDest != null)
                {
                    Add("MapDest", tp.MapDest.ToString());
                }
                Add("Creatures", tp.Creatures.ToString());
                Add("SourceEffect", tp.SourceEffect.ToString());
                Add("DestEffect", tp.DestEffect.ToString());
                Add("SoundID", tp.SoundID.ToString());
                Add("Delay", tp.Delay.ToString());
            }
            else if (item is Teleporter)
            {
                Teleporter tp = (Teleporter)item;

                if (item is SkillTeleporter)
                {
                    SkillTeleporter st = (SkillTeleporter)item;

                    Add("Skill", st.Skill.ToString());
                    // "RequiredFixedPoint" == Required * 0.1 ?
                    Add("Required", st.Required.ToString());
                    if (VS(st.MessageString))
                    {
                        Add("MessageString", st.MessageString);
                    }
                    Add("MessageNumber", st.MessageNumber.ToString());
                }
                else if (item is QuestTransporter)
                {
                    QuestTransporter st = (QuestTransporter)item;

                    Add("TeleportName", st.TeleportName);
                    Add("Required", st.Required);
                    if (VS(st.MessageString))
                    {
                        Add("MessageString", st.MessageString);
                    }
                }
                else if (item is KeywordTeleporter)
                {
                    KeywordTeleporter kt = (KeywordTeleporter)item;

                    if (VS(kt.Substring))
                    {
                        Add("Substring", kt.Substring);
                    }
                    Add("Keyword", kt.Keyword.ToString());
                    Add("Range", kt.Range.ToString());
                }
                Add("PointDest", tp.PointDest.ToString());
                if (tp.MapDest != null)
                {
                    Add("MapDest", tp.MapDest.ToString());
                }
                Add("Creatures", tp.Creatures.ToString());
                Add("SourceEffect", tp.SourceEffect.ToString());
                Add("DestEffect", tp.DestEffect.ToString());
                Add("SoundID", tp.SoundID.ToString());
                Add("Delay", tp.Delay.ToString());
            }
            else if (item is FillableContainer)
            {
                Add("ContentType", ((FillableContainer)item).ContentType.ToString());
            }

            if (item.Light != LightType.ArchedWindowEast)
            {
                Add("Light", item.Light.ToString());
            }
            if (item.Hue > 0)
            {
                Add("Hue", item.Hue.ToString());
            }
            if (VS(item.Name))
            {
                Add("Name", item.Name);
            }
            if (item.Amount > 1)
            {
                Add("Amount", item.Amount.ToString());
            }

            s = String.Format("{0} {1}", ConstructType(item), itemID);

            if (List.Count > 0)
            {
                s += " (";
                for (int i = 0; i < List.Count; i++)
                {
                    if (List[i][1] == String.Empty)
                    {
                        s += String.Format("{0}{1}", List[i][0], (i < List.Count - 1 ? "; " : String.Empty));
                    }
                    else
                    {
                        s += String.Format("{0}={1}{2}", List[i][0], List[i][1], (i < List.Count - 1 ? "; " : String.Empty));
                    }
                }
                s += ")";
            }

            List.Clear();
            return(s);
        }