You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

69 lines
1.9 KiB

using BigFloatNumerics;
using System;
using System.Numerics;
using UnityEngine;
[CreateAssetMenu(fileName = "DevelopTheJungleDgProp", menuName = "ScriptableObject/GameMod/DevelopTheJungleDgProp")]
public class DevelopTheJungleDgProp : GameModProperty
{
[Serializable]
public struct GoodsCreator
{
public ItemProp itemProp;
public float startCount;
public float multiplierPerLevel;
public float adderPerLevel;
public BigInteger GetCount(uint level)
{
return Formula.Calculate(startCount, multiplierPerLevel, adderPerLevel, level);
}
}
[Serializable]
public struct EnemyCreator
{
[Serializable]
struct StatProperty
{
public float baseV;
public float multiplierPerLevel;
public float adderPerLevel;
}
public CharacterProperty property;
public uint countPerWave;
[SerializeField] StatProperty hpStat;
[SerializeField] StatProperty atkStat;
public BigFloat GetHp(uint level)
{
return Formula.Calculate(hpStat.baseV, hpStat.multiplierPerLevel, hpStat.adderPerLevel, level);
}
public BigFloat GetAtk(uint level)
{
return Formula.Calculate(atkStat.baseV, atkStat.multiplierPerLevel, atkStat.adderPerLevel, level);
}
}
public static string CodeName => "DevelopTheJungleDg";
public override string codeName => CodeName;
public uint openStage = 1;
public int waveCount = 1;
public EnemyCreator[] normalEnemyCreator;
public float limitTime = 1;
public GoodsCreator[] rewards;
public override GameModData CreateData(GameModPlayProperty playProperty)
{
Debug.Assert(playProperty is DevelopTheJungleDgPlayProp, "Invalid play property type.");
return new DevelopTheJungleDgData(this, playProperty as DevelopTheJungleDgPlayProp);
}
}