Initial
This commit is contained in:
parent
7a77b79dc5
commit
cdadd75ee9
104 changed files with 9416 additions and 0 deletions
|
@ -0,0 +1,214 @@
|
|||
/*
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using LethalLevelLoader;
|
||||
using UnityEngine;
|
||||
|
||||
namespace ScarletMansion {
|
||||
public class ExtendedDungeonMapLoad {
|
||||
|
||||
public static List<CustomMoonEntry> GetCustomMoons(string value, int rarity){
|
||||
var list = new List<CustomMoonEntry>();
|
||||
var config = value.ToLowerInvariant();
|
||||
|
||||
if (config == "all") {
|
||||
list.Add(new DynamicLevelTags("Vanilla", rarity));
|
||||
list.Add(new DynamicLevelTags("Custom", rarity));
|
||||
Plugin.logger.LogInfo("Loading SDM for all moons");
|
||||
} else if (config == "vanilla") {
|
||||
list.Add(new DynamicLevelTags("Vanilla", rarity));
|
||||
Plugin.logger.LogInfo("Loading SDM for all vanilla moons");
|
||||
} else if (config == "modded") {
|
||||
list.Add(new DynamicLevelTags("Custom", rarity));
|
||||
Plugin.logger.LogInfo("Loading SDM for all modded moons");
|
||||
} else if (config == "paid") {
|
||||
list.Add(new DynamicRoutePrices(new Vector2(1, 9999), rarity));
|
||||
Plugin.logger.LogInfo("Loading SDM for all paid moons");
|
||||
} else if (config == "free") {
|
||||
list.Add(new DynamicRoutePrices(new Vector2(0, 9999), rarity));
|
||||
Plugin.logger.LogInfo("Loading SDM for all free moons");
|
||||
} else {
|
||||
Plugin.logger.LogInfo("Loading SDM with predefined moon list");
|
||||
var moonEntries = config.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
foreach(var entry in moonEntries){
|
||||
var moonValues = entry.Split(new[] { '@' }, StringSplitOptions.RemoveEmptyEntries);
|
||||
var len = moonValues.Length;
|
||||
if (len > 2){
|
||||
Plugin.logger.LogError($"Invalid setup for moon rarity config: {entry}. Skipping");
|
||||
continue;
|
||||
}
|
||||
if (len == 1){
|
||||
Plugin.logger.LogInfo($"Loading SDM for moon {entry} at default rarity of {rarity}");
|
||||
list.Add(new ManualPlanetNameReference(entry, rarity));
|
||||
} else {
|
||||
var moon = moonValues[0];
|
||||
var moonRarity = moonValues[1];
|
||||
if (int.TryParse(moonRarity, out var moonRarityValue)){
|
||||
Plugin.logger.LogInfo($"Loading SDM for moon {moon} at rarity of {moonRarityValue}");
|
||||
list.Add(new ManualPlanetNameReference(moon, moonRarityValue));
|
||||
continue;
|
||||
}
|
||||
|
||||
Plugin.logger.LogError($"Failed to parse rarity value for moon {moon} rarity {moonRarity}. Skipping");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
public static void ClearLastCustomMoonEntryList(){
|
||||
|
||||
Plugin.logger.LogInfo("Clearing previous custom dungeon load");
|
||||
|
||||
var dun = Assets.dungeonExtended;
|
||||
var lastList = Assets.customMoonEntryList;
|
||||
if (lastList != null) {
|
||||
foreach(var item in lastList){
|
||||
item.Remove(dun);
|
||||
}
|
||||
}
|
||||
|
||||
Assets.rendEntry.Remove(dun);
|
||||
Assets.dineEntry.Remove(dun);
|
||||
Assets.titanEntry.Remove(dun);
|
||||
|
||||
Assets.customMoonEntryList = null;
|
||||
}
|
||||
|
||||
public static void AddToExtendedDungeonFlow(List<CustomMoonEntry> list){
|
||||
var dun = Assets.dungeonExtended;
|
||||
foreach(var item in list){
|
||||
item.Add(dun);
|
||||
}
|
||||
|
||||
Assets.customMoonEntryList = list;
|
||||
}
|
||||
|
||||
public abstract class CustomMoonEntry {
|
||||
|
||||
public virtual void Add(ExtendedDungeonFlow flow) {
|
||||
Plugin.logger.LogInfo($"Added {ToString()}");
|
||||
}
|
||||
|
||||
public virtual void Remove(ExtendedDungeonFlow flow) {
|
||||
Plugin.logger.LogInfo($"Removed {ToString()}");
|
||||
}
|
||||
|
||||
public abstract void SetRarity(int rarity);
|
||||
}
|
||||
|
||||
public class ManualContentSourceNameReference : CustomMoonEntry {
|
||||
|
||||
public StringWithRarity value;
|
||||
|
||||
public ManualContentSourceNameReference(string title, int rarity){
|
||||
value = new StringWithRarity(title, rarity);
|
||||
}
|
||||
|
||||
public override void Add(ExtendedDungeonFlow flow){
|
||||
base.Add(flow);
|
||||
flow.manualContentSourceNameReferenceList.Add(value);
|
||||
}
|
||||
|
||||
public override void Remove(ExtendedDungeonFlow flow){
|
||||
if (flow.manualContentSourceNameReferenceList.Remove(value)) base.Remove(flow);
|
||||
else Plugin.logger.LogInfo($"Tried to remove {ToString()} but it's already gone");
|
||||
}
|
||||
|
||||
public override void SetRarity(int rarity) {
|
||||
value.Rarity = rarity;
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return $"ManualContentSourceNameReference: ({value.Name}, {value.Rarity})";
|
||||
}
|
||||
}
|
||||
|
||||
public class DynamicLevelTags : CustomMoonEntry {
|
||||
|
||||
public StringWithRarity value;
|
||||
|
||||
public DynamicLevelTags(string title, int rarity){
|
||||
value = new StringWithRarity(title, rarity);
|
||||
}
|
||||
|
||||
public override void Add(ExtendedDungeonFlow flow){
|
||||
base.Add(flow);
|
||||
flow.dynamicLevelTagsList.Add(value);
|
||||
}
|
||||
|
||||
public override void Remove(ExtendedDungeonFlow flow){
|
||||
if (flow.dynamicLevelTagsList.Remove(value)) base.Remove(flow);
|
||||
else Plugin.logger.LogInfo($"Tried to remove {ToString()} but it's already gone");
|
||||
}
|
||||
|
||||
public override void SetRarity(int rarity) {
|
||||
value.Rarity = rarity;
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return $"DynamicLevelTags: ({value.Name}, {value.Rarity})";
|
||||
}
|
||||
}
|
||||
|
||||
public class ManualPlanetNameReference : CustomMoonEntry {
|
||||
|
||||
public StringWithRarity value;
|
||||
|
||||
public ManualPlanetNameReference(string title, int rarity){
|
||||
value = new StringWithRarity(title, rarity);
|
||||
}
|
||||
|
||||
public override void Add(ExtendedDungeonFlow flow){
|
||||
base.Add(flow);
|
||||
flow.manualPlanetNameReferenceList.Add(value);
|
||||
}
|
||||
|
||||
public override void Remove(ExtendedDungeonFlow flow){
|
||||
if (flow.manualPlanetNameReferenceList.Remove(value)) base.Remove(flow);
|
||||
else Plugin.logger.LogInfo($"Tried to remove {ToString()} but it's already gone");
|
||||
}
|
||||
|
||||
public override void SetRarity(int rarity) {
|
||||
value.Rarity = rarity;
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return $"ManualPlanetNameReference: ({value.Name}, {value.Rarity})";
|
||||
}
|
||||
}
|
||||
|
||||
public class DynamicRoutePrices : CustomMoonEntry {
|
||||
|
||||
public Vector2WithRarity value;
|
||||
|
||||
public DynamicRoutePrices(Vector2 price, int rarity){
|
||||
value = new Vector2WithRarity(price, rarity);
|
||||
}
|
||||
|
||||
public override void Add(ExtendedDungeonFlow flow){
|
||||
base.Add(flow);
|
||||
flow.dynamicRoutePricesList.Add(value);
|
||||
}
|
||||
|
||||
public override void Remove(ExtendedDungeonFlow flow){
|
||||
if (flow.dynamicRoutePricesList.Remove(value)) base.Remove(flow);
|
||||
else Plugin.logger.LogInfo($"Tried to remove {ToString()} but it's already gone");
|
||||
}
|
||||
|
||||
public override void SetRarity(int rarity) {
|
||||
value.Rarity = rarity;
|
||||
}
|
||||
|
||||
public override string ToString() {
|
||||
return $"DynamicRoutePrices: ([{value.Min}, {value.Max}], {value.Rarity})";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
*/
|
Loading…
Add table
Add a link
Reference in a new issue