Пример #1
0
        public override void SetData(EnergyDefinition def, GameData gameData, AssetProvider assetProvider)
        {
            def.id = Id;

            Access.NullableSet(ref def.surgeExpression, SurgeExpression);
            Access.NullableSet(ref def.surgeEyesClosed, SurgeEyesClosed);
            Access.NullableSet(ref def.negSurgeExpression, NegSurgeExpression);
            Access.NullableSet(ref def.negSurgeEyesClosed, NegSurgeEyesClosed);
            Access.NullableSet(ref def.bossSurgeExpression, BossSurgeExpression);
            Access.NullableSet(ref def.bossSurgeEyesClosed, BossSurgeEyesClosed);

            if (IsAdditive)
            {
                if (TextMaterialName != null)
                {
                    def.textMaterial = (Material)assetProvider.GetAsset(TextMaterialName);
                }
                if (TextColorInfo != null)
                {
                    def.textColor = TextColorInfo.ToColor();
                }
                if (OutlineColorInfo != null)
                {
                    def.outlineColor = OutlineColorInfo.ToColor();
                }
                if (ShadowColorInfo != null)
                {
                    def.shadowColor = ShadowColorInfo.ToColor();
                }
                if (SurgeColorInfo != null)
                {
                    def.surgeColor = SurgeColorInfo.ToColor();
                }
            }
            else
            {
                def.textMaterial = (Material)assetProvider.GetAsset(TextMaterialName);
                def.textColor    = TextColorInfo?.ToColor() ?? Color.white;
                def.outlineColor = OutlineColorInfo?.ToColor() ?? Color.white;
                def.shadowColor  = ShadowColorInfo?.ToColor() ?? Color.white;
                def.surgeColor   = SurgeColorInfo?.ToColor() ?? Color.white;
            }

            SetSprites(ref def.burstSprites, BurstSprites, assetProvider);
            SetSprites(ref def.trailSprites, TrailSprites, assetProvider);
            SetSprites(ref def.splashSprites, SplashSprites, assetProvider);
            SetSprites(ref def.surgeSprites, SurgeSprites, assetProvider);
        }
Пример #2
0
        public AudioClip ToAudioClip(AssetProvider assetProvider)
        {
            if (assetProvider == null)
            {
                throw new ArgumentNullException(nameof(assetProvider));
            }

            if (Path == null)
            {
                return(null);
            }
            else if (IsExternal)
            {
                if (File.Exists(Path))
                {
                    byte[] fileBytes = File.ReadAllBytes(Path);
                    return(WAV.LoadAudioClip(fileBytes, 0));
                }
                return(null);
            }
            else
            {
                return((AudioClip)assetProvider.GetAsset(Path));
            }
        }
Пример #3
0
        public Sprite ToSprite(AssetProvider assetProvider)
        {
            if (Path == null)
            {
                return(null);
            }
            ;
            if (IsExternal)
            {
                if (File.Exists(Path))
                {
                    var fileData = File.ReadAllBytes(Path);
                    var texture  = new Texture2D(0, 0, TextureFormat.ARGB32, false);
                    texture.LoadImage(fileData);

                    return(Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero));
                }
                return(null);
            }
            else
            {
                return((Sprite)assetProvider.GetAsset(Path));
            }
        }
Пример #4
0
 Task <Addresses> GetAddressesFromAssets()
 {
     return(deserializer.DeserializeAsync <Addresses>(AssetProvider.GetAsset("addresses.json")));
 }
Пример #5
0
        public CutsceneStepSubDefinition ToCutsceneStep(GameData gameData, AssetProvider assetProvider)
        {
            var newCSS = new CutsceneStepSubDefinition();

            newCSS.skipStep                  = SkipStep;
            newCSS.stepType                  = StepType;
            newCSS.proceedType               = ProceedType;
            newCSS.dollTargetType            = DollTargetType;
            newCSS.targetDollOrientation     = TargetDollOrientation;
            newCSS.targetAlt                 = TargetAlt;
            newCSS.boolValue                 = BoolValue;
            newCSS.intValue                  = IntValue;
            newCSS.floatValue                = FloatValue;
            newCSS.stringValue               = StringValue;
            newCSS.easeType                  = (Ease)EaseType;
            newCSS.editorSelectedBranchIndex = EditorSelectedBranchIndex;
            newCSS.expressionType            = ExpressionType;
            newCSS.setMood = SetMood;
            newCSS.editorSelectedOptionIndex = EditorSelectedOptionIndex;
            newCSS.dollPositionType          = DollPositionType;
            newCSS.expressionIndex           = ExpressionIndex;
            newCSS.hairstyleIndex            = HairstyleIndex;
            newCSS.outfitIndex              = OutfitIndex;
            newCSS.animationType            = AnimationType;
            newCSS.subCutsceneType          = SubCutsceneType;
            newCSS.girlPairRelationshipType = GirlPairRelationshipType;
            newCSS.notificationType         = NotificationType;
            newCSS.proceedBool              = ProceedBool;
            newCSS.proceedFloat             = ProceedFloat;

            newCSS.targetGirlDefinition    = gameData.Girls.Get(TargetGirlDefinitionID);
            newCSS.girlDefinition          = gameData.Girls.Get(GirlDefinitionID);
            newCSS.dialogTriggerDefinition = gameData.DialogTriggers.Get(DialogTriggerDefinitionID);
            newCSS.subCutsceneDefinition   = gameData.Cutscenes.Get(SubCutsceneDefinitionID);

            newCSS.windowPrefab      = (UiWindow)assetProvider.GetAsset(WindowPrefabName);
            newCSS.emitterBehavior   = (EmitterBehavior)assetProvider.GetAsset(EmitterBehaviorName);
            newCSS.specialStepPrefab = (CutsceneStepSpecial)assetProvider.GetAsset(SpecialStepPrefabName);
            newCSS.bannerTextPrefab  = (BannerTextBehavior)assetProvider.GetAsset(BannerTextPrefabName);

            if (DialogLineInfo != null)
            {
                newCSS.dialogLine = DialogLineInfo.ToDialogLine(assetProvider);
            }
            if (LogicActionInfo != null)
            {
                newCSS.logicAction = LogicActionInfo.ToLogicAction(gameData, assetProvider);
            }
            if (AudioKlipInfo != null)
            {
                newCSS.audioKlip = AudioKlipInfo.ToAudioKlip(assetProvider);
            }
            if (PositionInfo != null)
            {
                newCSS.position = PositionInfo.ToVector2();
            }

            if (BranchInfos != null)
            {
                newCSS.branches = BranchInfos.Select(x => x.ToCutsceneBranch(gameData, assetProvider)).ToList();
            }
            if (DialogOptionInfos != null)
            {
                newCSS.dialogOptions = DialogOptionInfos.Select(x => x.ToCutsceneDialogOption(gameData, assetProvider)).ToList();
            }

            return(newCSS);
        }
Пример #6
0
        public override void SetData(GirlDefinition def, GameData gameData, AssetProvider assetProvider)
        {
            def.id = Id;

            Access.NullableSet(ref def.editorTab, EditorTab);
            Access.NullableSet(ref def.girlAge, GirlAge);
            Access.NullableSet(ref def.dialogTriggerTab, DialogTriggerTab);
            Access.NullableSet(ref def.specialCharacter, SpecialCharacter);
            Access.NullableSet(ref def.bossCharacter, BossCharacter);
            Access.NullableSet(ref def.favoriteAffectionType, FavoriteAffectionType);
            Access.NullableSet(ref def.leastFavoriteAffectionType, LeastFavoriteAffectionType);
            Access.NullableSet(ref def.voiceVolume, VoiceVolume);
            Access.NullableSet(ref def.sexVoiceVolume, SexVoiceVolume);
            Access.NullableSet(ref def.shoesType, ShoesType);
            Access.NullableSet(ref def.uniqueType, UniqueType);
            Access.NullableSet(ref def.hasAltStyles, HasAltStyles);
            Access.NullableSet(ref def.partIndexBody, PartIndexBody);
            Access.NullableSet(ref def.partIndexNipples, PartIndexNipples);
            Access.NullableSet(ref def.partIndexBlushLight, PartIndexBlushLight);
            Access.NullableSet(ref def.partIndexBlushHeavy, PartIndexBlushHeavy);
            Access.NullableSet(ref def.partIndexBlink, PartIndexBlink);
            Access.NullableSet(ref def.partIndexMouthNeutral, PartIndexMouthNeutral);
            Access.NullableSet(ref def.defaultExpressionIndex, DefaultExpressionIndex);
            Access.NullableSet(ref def.failureExpressionIndex, FailureExpressionIndex);
            Access.NullableSet(ref def.defaultHairstyleIndex, DefaultHairstyleIndex);
            Access.NullableSet(ref def.defaultOutfitIndex, DefaultOutfitIndex);

            if (AltStylesCodeDefinitionID.HasValue)
            {
                def.altStylesCodeDefinition = gameData.Codes.Get(AltStylesCodeDefinitionID.Value);
            }
            if (UnlockStyleCodeDefinitionID.HasValue)
            {
                def.unlockStyleCodeDefinition = gameData.Codes.Get(UnlockStyleCodeDefinitionID.Value);
            }

            if (IsAdditive)
            {
                Access.NullSet(ref def.girlName, GirlName);
                Access.NullSet(ref def.girlNickName, GirlNickName);
                Access.NullSet(ref def.expressions, Expressions);
                Access.NullSet(ref def.hairstyles, Hairstyles);
                Access.NullSet(ref def.outfits, Outfits);
                Access.NullSet(ref def.specialParts, SpecialParts);
                Access.NullSet(ref def.herQuestions, HerQuestions);
                Access.NullSet(ref def.favAnswers, FavAnswers);
                Access.NullSet(ref def.altStylesFlagName, AltStylesFlagName);
                Access.NullSet(ref def.partIndexesPhonemes, PartIndexesPhonemes);
                Access.NullSet(ref def.partIndexesPhonemesTeeth, PartIndexesPhonemesTeeth);
                Access.NullSet(ref def.shoesAdj, ShoesAdj);
                Access.NullSet(ref def.uniqueAdj, UniqueAdj);
                Access.NullSet(ref def.badFoodTypes, BadFoodTypes);

                if (CellphonePortrait != null)
                {
                    def.cellphonePortrait = CellphonePortrait.ToSprite(assetProvider);
                }
                if (CellphonePortraitAlt != null)
                {
                    def.cellphonePortraitAlt = CellphonePortraitAlt.ToSprite(assetProvider);
                }
                if (CellphoneHead != null)
                {
                    def.cellphoneHead = CellphoneHead.ToSprite(assetProvider);
                }
                if (CellphoneHeadAlt != null)
                {
                    def.cellphoneHeadAlt = CellphoneHeadAlt.ToSprite(assetProvider);
                }
                if (CellphoneMiniHead != null)
                {
                    def.cellphoneMiniHead = CellphoneMiniHead.ToSprite(assetProvider);
                }
                if (CellphoneMiniHeadAlt != null)
                {
                    def.cellphoneMiniHeadAlt = CellphoneMiniHeadAlt.ToSprite(assetProvider);
                }

                if (BreathEmitterPos != null)
                {
                    def.breathEmitterPos = BreathEmitterPos.ToVector2();
                }
                if (UpsetEmitterPos != null)
                {
                    def.upsetEmitterPos = UpsetEmitterPos.ToVector2();
                }
                if (SpecialEffectOffset != null)
                {
                    def.specialEffectOffset = SpecialEffectOffset.ToVector2();
                }

                if (SpecialEffectName != null)
                {
                    def.specialEffectPrefab = (UiDollSpecialEffect)assetProvider.GetAsset(SpecialEffectName);
                }
            }
            else
            {
                def.girlName                 = GirlName;
                def.girlNickName             = GirlNickName;
                def.expressions              = Expressions;
                def.hairstyles               = Hairstyles;
                def.outfits                  = Outfits;
                def.specialParts             = SpecialParts;
                def.herQuestions             = HerQuestions;
                def.favAnswers               = FavAnswers;
                def.altStylesFlagName        = AltStylesFlagName;
                def.partIndexesPhonemes      = PartIndexesPhonemes;
                def.partIndexesPhonemesTeeth = PartIndexesPhonemesTeeth;
                def.shoesAdj                 = ShoesAdj;
                def.uniqueAdj                = UniqueAdj;
                def.badFoodTypes             = BadFoodTypes;

                def.cellphonePortrait    = CellphonePortrait?.ToSprite(assetProvider);
                def.cellphonePortraitAlt = CellphonePortraitAlt?.ToSprite(assetProvider);
                def.cellphoneHead        = CellphoneHead?.ToSprite(assetProvider);
                def.cellphoneHeadAlt     = CellphoneHeadAlt?.ToSprite(assetProvider);
                def.cellphoneMiniHead    = CellphoneMiniHead?.ToSprite(assetProvider);
                def.cellphoneMiniHeadAlt = CellphoneMiniHeadAlt?.ToSprite(assetProvider);

                def.breathEmitterPos    = BreathEmitterPos?.ToVector2() ?? Vector2.zero;
                def.upsetEmitterPos     = UpsetEmitterPos?.ToVector2() ?? Vector2.zero;
                def.specialEffectOffset = SpecialEffectOffset?.ToVector2() ?? Vector2.zero;

                def.specialEffectPrefab = (UiDollSpecialEffect)assetProvider.GetAsset(SpecialEffectName);
            }

            SetGirlPairs(ref def.girlPairDefs, GirlPairDefIDs, gameData);
            SetItems(ref def.baggageItemDefs, BaggageItemDefIDs, gameData);
            SetItems(ref def.uniqueItemDefs, UniqueItemDefIDs, gameData);
            SetItems(ref def.shoesItemDefs, ShoesItemDefIDs, gameData);
            SetGirlParts(ref def.parts, Parts, assetProvider);
        }
 public async Task <Asset> GetAsset(string id)
 {
     return(await AssetProvider.GetAsset(id));
 }