反编译limbusWindows的成果
alwayswin:
StageController:
private void EndStage()
{
SingletonBehavior<BattleObjectManager>.Instance.OnStageEnd();
this.StageModel.SetStageResult(true, true, this._currentRound, this.SaveAddedUnlockedInformationData());
GlobalGameManager.Instance.SetStageClearState(this.StageModel.StageResult);
BattleSoundGenerator.StopBGM(true);
SingletonBehavior<BattleUIRoot>.Instance.OpenBattleEndTypo(this.StageModel.StageResult, this.StageModel.SkipStageResult(), this.StageModel.FormationInfo);
Singleton<DungeonSinStockManager>.Instance.OnStageEnd();
SingletonBehavior<BattleCamManager>.Instance.OnStageEnd();
}
HP, SP dungeon recover:
DungeonUnitModel:
public DungeonUnitModel(UnitDataModel_Player unit, int level, int hp, int mp)
{
this._unitModel = unit;
this._hp = hp+100;
this._mp = mp+50;
this._level = level;
this._egoGiftDetail = new EGOGiftDetail_Dungeon();
this._isGacksung = this.GacksungLevel == Singleton<StaticDataManager>.Instance.Common.PersonalityLevelTable.GetMaxGacksungLevelOfRank(unit.classInfo.Rank);
}
public void ResetData()
{
this._hp = this.GetMaxHp();
this._mp = 45;
}
Increase SP effect on coin flip:
Util:
public static float GetCoinProbAdder(int mp)
{
return (float)mp * 0.01f;
}
Start with 45 SP:
BattleUnitModel:
public virtual void Init(UnitDataModel unitmodel, int instanceID)
{
this._instanceID = instanceID;
this._unitModel = unitmodel;
this._faction = unitmodel.Faction;
this._passiveDetail = new PassiveDetail(this, this._unitModel);
this._buffDetail = new BuffDetail(this);
this._EGOGiftDetail = new EGOGiftDetail_Battle();
this._systemAbilityDetail = new BattleSystemAbilityDetail();
this._actionSlotDetail = new ActionSlotDetail(this);
this._sortedActionList = new List<BattleActionModel>();
this._doneActionThisTurnList = new List<BattleActionModel>();
this._doneActionPrevTurnList = new List<BattleActionModel>();
this._activatedAbilityDic = new Dictionary<string, int>();
List<BreakSection> list = new List<BreakSection>();
if (!Singleton<StageController>.Instance.StageModel.BlockCreateBreakSectionWhenAddUnit(this))
{
BreakSectionInfo breakSection = this._unitModel.ClassInfo.BreakSection;
foreach (int num in ((breakSection != null) ? breakSection.SectionList : null))
{
int num2 = this._unitModel.GetMaxHp() * num / 100;
BreakSection breakSection2 = new BreakSection(this, num2);
list.Add(breakSection2);
}
}
this._resistDetail = new ResistDetail(unitmodel.ClassInfo.ResistInfo);
this._state = new CharacterState(false, false, false, false, false, false, false, false, unitmodel.GetMaxHp(), list);
if (this._faction.Equals(UNIT_FACTION.PLAYER))
{
this._state.Init(this);
this.RecoverMp(45);
}
this._originID = this._unitModel.ClassInfo.ID;
this.CreateSlotWeightConditions();
}