예제 #1
0
    public static string SpriteNameOfCreature(IconSymbol.IconSymbolData iconData)
    {
        switch (iconData.critType)
        {
        case CreatureTemplate.Type.Slugcat:
            return("Kill_Slugcat");

        case CreatureTemplate.Type.PinkLizard:
        case CreatureTemplate.Type.BlueLizard:
        case CreatureTemplate.Type.RedLizard:
        case CreatureTemplate.Type.CyanLizard:
        case (CreatureTemplate.Type)patch_CreatureTemplate.Type.GreyLizard:
            return("Kill_Standard_Lizard");

        case CreatureTemplate.Type.GreenLizard:
            return("Kill_Green_Lizard");

        case CreatureTemplate.Type.YellowLizard:
            return("Kill_Yellow_Lizard");

        case CreatureTemplate.Type.WhiteLizard:
            return("Kill_White_Lizard");

        case CreatureTemplate.Type.BlackLizard:
            return("Kill_Black_Lizard");

        case CreatureTemplate.Type.Salamander:
            return("Kill_Salamander");

        case CreatureTemplate.Type.Fly:
            return("Kill_Bat");

        case CreatureTemplate.Type.Leech:
        case CreatureTemplate.Type.SeaLeech:
            return("Kill_Leech");

        case CreatureTemplate.Type.Snail:
            return("Kill_Snail");

        case CreatureTemplate.Type.Vulture:
            return("Kill_Vulture");

        case CreatureTemplate.Type.GarbageWorm:
            return("Kill_Garbageworm");

        case CreatureTemplate.Type.LanternMouse:
            return("Kill_Mouse");

        case CreatureTemplate.Type.CicadaA:
        case CreatureTemplate.Type.CicadaB:
            return("Kill_Cicada");

        case CreatureTemplate.Type.Spider:
            return("Kill_SmallSpider");

        case CreatureTemplate.Type.JetFish:
            return("Kill_Jetfish");

        case CreatureTemplate.Type.BigEel:
            return("Kill_BigEel");

        case CreatureTemplate.Type.Deer:
            return("Kill_RainDeer");

        case CreatureTemplate.Type.TubeWorm:
            return("Kill_Tubeworm");

        case CreatureTemplate.Type.DaddyLongLegs:
        case CreatureTemplate.Type.BrotherLongLegs:
            return("Kill_Daddy");

        case CreatureTemplate.Type.TentaclePlant:
            return("Kill_TentaclePlant");

        case CreatureTemplate.Type.PoleMimic:
            return("Kill_PoleMimic");

        case CreatureTemplate.Type.MirosBird:
            return("Kill_MirosBird");

        case CreatureTemplate.Type.Centipede:
            return("Kill_Centipede" + Custom.IntClamp(iconData.intData, 1, 3));

        case CreatureTemplate.Type.RedCentipede:
            return("Kill_Centipede3");

        case CreatureTemplate.Type.Centiwing:
            return("Kill_Centiwing");

        case CreatureTemplate.Type.SmallCentipede:
            return("Kill_Centipede1");

        case CreatureTemplate.Type.Scavenger:
            return("Kill_Scavenger");

        case CreatureTemplate.Type.Overseer:
            return("Kill_Overseer");

        case CreatureTemplate.Type.VultureGrub:
            return("Kill_VultureGrub");

        case CreatureTemplate.Type.EggBug:
            return("Kill_EggBug");

        case CreatureTemplate.Type.BigSpider:
        case CreatureTemplate.Type.SpitterSpider:
            return("Kill_BigSpider");

        case CreatureTemplate.Type.SmallNeedleWorm:
            return("Kill_SmallNeedleWorm");

        case CreatureTemplate.Type.BigNeedleWorm:
            return("Kill_NeedleWorm");

        case CreatureTemplate.Type.DropBug:
            return("Kill_DropBug");

        case CreatureTemplate.Type.KingVulture:
            return("Kill_KingVulture");

        case CreatureTemplate.Type.Hazer:
            return("Kill_Hazer");

        case (CreatureTemplate.Type)patch_CreatureTemplate.Type.WalkerBeast:
            return("Kill_WalkerBeast");

        case (CreatureTemplate.Type)patch_CreatureTemplate.Type.SeaDrake:
            return("Kill_SeaDrake");
        }
        return("Futile_White");
    }
예제 #2
0
    // Token: 0x06000670 RID: 1648 RVA: 0x000356E4 File Offset: 0x000338E4
    public static Color ColorOfCreature(IconSymbol.IconSymbolData iconData)
    {
        switch (iconData.critType)
        {
        case CreatureTemplate.Type.Slugcat:
            return(PlayerGraphics.SlugcatColor(iconData.intData));

        case CreatureTemplate.Type.PinkLizard:
            return((StaticWorld.GetCreatureTemplate(iconData.critType).breedParameters as LizardBreedParams).standardColor);

        case CreatureTemplate.Type.GreenLizard:
            return((StaticWorld.GetCreatureTemplate(iconData.critType).breedParameters as LizardBreedParams).standardColor);

        case CreatureTemplate.Type.BlueLizard:
            return((StaticWorld.GetCreatureTemplate(iconData.critType).breedParameters as LizardBreedParams).standardColor);

        case CreatureTemplate.Type.YellowLizard:
        case CreatureTemplate.Type.Centipede:
        case CreatureTemplate.Type.SmallCentipede:
            return(new Color(1f, 0.6f, 0f));

        case CreatureTemplate.Type.WhiteLizard:
            return((StaticWorld.GetCreatureTemplate(iconData.critType).breedParameters as LizardBreedParams).standardColor);

        case CreatureTemplate.Type.RedLizard:
            return(new Color(0.9019608f, 0.05490196f, 0.05490196f));

        case (CreatureTemplate.Type)patch_CreatureTemplate.Type.GreyLizard:
            return(new Color(0.686f * 1.1f, 0.698f * 1.1f, 0.643f * 1.1f));

        case CreatureTemplate.Type.BlackLizard:
            return(new Color(0.368627459f, 0.368627459f, 0.435294122f));

        case (CreatureTemplate.Type)patch_CreatureTemplate.Type.SeaDrake:
            return(new Color(0.368627459f, 0.368627459f, 0.435294122f));

        case CreatureTemplate.Type.Salamander:
            return(new Color(0.933333337f, 0.78039217f, 0.894117653f));

        case CreatureTemplate.Type.CyanLizard:
        case CreatureTemplate.Type.Overseer:
            return(new Color(0f, 0.9098039f, 0.9019608f));

        case CreatureTemplate.Type.Leech:
        case CreatureTemplate.Type.SpitterSpider:
            return(new Color(0.68235296f, 0.156862751f, 0.117647059f));

        case CreatureTemplate.Type.SeaLeech:
        case CreatureTemplate.Type.TubeWorm:
            return(new Color(0.05f, 0.3f, 0.7f));

        case CreatureTemplate.Type.CicadaA:
            return(new Color(1f, 1f, 1f));

        case CreatureTemplate.Type.CicadaB:
            return(new Color(0.368627459f, 0.368627459f, 0.435294122f));

        case CreatureTemplate.Type.DaddyLongLegs:
            return(new Color(0f, 0f, 1f));

        case CreatureTemplate.Type.BrotherLongLegs:
            return(new Color(0.454901963f, 0.5254902f, 0.305882365f));

        case CreatureTemplate.Type.RedCentipede:
            return(new Color(0.9019608f, 0.05490196f, 0.05490196f));

        case CreatureTemplate.Type.Centiwing:
            return(new Color(0.05490196f, 0.698039234f, 0.235294119f));

        case CreatureTemplate.Type.VultureGrub:
            return(new Color(0.831372559f, 0.7921569f, 0.435294122f));

        case CreatureTemplate.Type.EggBug:
            return(new Color(0f, 1f, 0.470588237f));

        case CreatureTemplate.Type.SmallNeedleWorm:
        case CreatureTemplate.Type.BigNeedleWorm:
            return(new Color(1f, 0.596078455f, 0.596078455f));

        case CreatureTemplate.Type.Hazer:
            return(new Color(0.211764708f, 0.7921569f, 0.3882353f));
        }
        return(Menu.Menu.MenuRGB(Menu.Menu.MenuColors.MediumGrey));
    }
        private void SpawnEntity(SandboxEditor.PlacedIconData placedIconData)
        {
            IconSymbol.IconSymbolData data = placedIconData.data;
            WorldCoordinate           pos  = new WorldCoordinate(0, -1, -1, -1);

            pos.x = Mathf.RoundToInt(placedIconData.pos.x / 20f);
            pos.y = Mathf.RoundToInt(placedIconData.pos.y / 20f);
            EntityID entityID = (!base.GameTypeSetup.saveCreatures) ? this.game.GetNewID() : placedIconData.ID;

            if (data.itemType == AbstractPhysicalObject.AbstractObjectType.Creature)
            {
                AbstractCreature abstractCreature = null;
                if (base.GameTypeSetup.saveCreatures)
                {
                    for (int i = 0; i < this.arenaSitting.creatures.Count; i++)
                    {
                        if (this.arenaSitting.creatures[i].creatureTemplate.type == data.critType && this.arenaSitting.creatures[i].ID == entityID)
                        {
                            abstractCreature = this.arenaSitting.creatures[i];
                            this.arenaSitting.creatures.RemoveAt(i);
                            for (int j = 0; j < 2; j++)
                            {
                                abstractCreature.state.CycleTick();
                            }
                            string creatureString = SaveState.AbstractCreatureToString(abstractCreature);
                            abstractCreature     = SaveState.AbstractCreatureFromString(this.game.world, creatureString, false);
                            abstractCreature.pos = pos;
                            break;
                        }
                    }
                }
                if (abstractCreature == null)
                {
                    abstractCreature = new AbstractCreature(this.game.world, StaticWorld.GetCreatureTemplate(data.critType), null, pos, entityID);
                }
                CreatureTemplate.Type critType = data.critType;
                switch (critType)
                {
                case CreatureTemplate.Type.TentaclePlant:
                case CreatureTemplate.Type.PoleMimic:
                    abstractCreature.pos.x            = -1;
                    abstractCreature.pos.y            = -1;
                    abstractCreature.pos.abstractNode = data.intData;
                    this.game.world.GetAbstractRoom(0).entitiesInDens.Add(abstractCreature);
                    break;

                default:
                    switch (critType)
                    {
                    case CreatureTemplate.Type.Fly:
                    case CreatureTemplate.Type.Leech:
                    case CreatureTemplate.Type.SeaLeech:
                        for (int k = 0; k < 5; k++)
                        {
                            this.game.world.GetAbstractRoom(0).AddEntity(new AbstractCreature(this.game.world, StaticWorld.GetCreatureTemplate(data.critType), null, pos, entityID));
                        }
                        break;

                    default:
                        if (critType == CreatureTemplate.Type.Slugcat)
                        {
                            if (this.playerSpawnDens == null)
                            {
                                this.playerSpawnDens = new List <int>();
                            }
                            this.playerSpawnDens.Add(data.intData);
                        }
                        if (critType != CreatureTemplate.Type.Spider)
                        {
                            this.game.world.GetAbstractRoom(0).AddEntity(abstractCreature);
                        }
                        break;
                    }
                    break;

                case CreatureTemplate.Type.Centipede:
                {
                    float num = 0f;
                    if (data.intData == 2)
                    {
                        num = Mathf.Lerp(0.265f, 0.55f, Mathf.Pow(Custom.ClampedRandomVariation(0.5f, 0.5f, 0.7f), 1.2f));
                    }
                    else if (data.intData == 3)
                    {
                        num = Mathf.Lerp(0.7f, 1f, Mathf.Pow(UnityEngine.Random.value, 0.6f));
                    }
                    abstractCreature.spawnData = "{" + num.ToString() + "}";
                    this.game.world.GetAbstractRoom(0).AddEntity(abstractCreature);
                    break;
                }
                }
            }
            else
            {
                AbstractPhysicalObject.AbstractObjectType itemType = data.itemType;
                if (itemType != AbstractPhysicalObject.AbstractObjectType.Spear)
                {
                    if (itemType != AbstractPhysicalObject.AbstractObjectType.WaterNut)
                    {
                        if (itemType != AbstractPhysicalObject.AbstractObjectType.SporePlant)
                        {
                            if (itemType != AbstractPhysicalObject.AbstractObjectType.BubbleGrass)
                            {
                                if (AbstractConsumable.IsTypeConsumable(data.itemType))
                                {
                                    this.game.world.GetAbstractRoom(0).AddEntity(new AbstractConsumable(this.game.world, data.itemType, null, pos, entityID, -1, -1, null));
                                }
                                else
                                {
                                    this.game.world.GetAbstractRoom(0).AddEntity(new AbstractPhysicalObject(this.game.world, data.itemType, null, pos, entityID));
                                }
                            }
                            else
                            {
                                this.game.world.GetAbstractRoom(0).AddEntity(new BubbleGrass.AbstractBubbleGrass(this.game.world, null, pos, entityID, 1f, -1, -1, null));
                            }
                        }
                        else
                        {
                            this.game.world.GetAbstractRoom(0).AddEntity(new SporePlant.AbstractSporePlant(this.game.world, null, pos, entityID, -1, -1, null, false, true));
                        }
                    }
                    else
                    {
                        this.game.world.GetAbstractRoom(0).AddEntity(new WaterNut.AbstractWaterNut(this.game.world, null, pos, entityID, -1, -1, null, false));
                    }
                }
                else
                {
                    this.game.world.GetAbstractRoom(0).AddEntity(new AbstractSpear(this.game.world, null, pos, entityID, data.intData == 1));
                }
            }
        }