2025-02-27 08:37:55 +01:00
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
2025-04-08 15:02:41 +02:00
|
|
|
using Cirno.Scripts.Enums;
|
2025-05-02 15:49:25 +02:00
|
|
|
using Godot;
|
2025-02-27 08:37:55 +01:00
|
|
|
|
|
|
|
|
namespace Cirno.Scripts.Utils;
|
|
|
|
|
|
|
|
|
|
public class SessionSettings
|
|
|
|
|
{
|
2025-04-10 19:04:06 +02:00
|
|
|
public GameMode GameMode { get; set; } = GameMode.Game;
|
2025-02-27 08:37:55 +01:00
|
|
|
public bool SkipDialogues { get; set; } = false;
|
|
|
|
|
public bool GodMode { get; set; } = false;
|
|
|
|
|
|
2025-04-08 15:02:41 +02:00
|
|
|
public DifficultyLevel Difficulty { get; set; } = DifficultyLevel.Normal;
|
2025-04-02 18:39:37 +02:00
|
|
|
public bool AllowSaving { get; set; } = false;
|
|
|
|
|
|
2025-03-24 16:56:35 +01:00
|
|
|
public Godot.Collections.Dictionary<string, int> Items { get; set; } = new();
|
2025-04-02 17:42:55 +02:00
|
|
|
|
|
|
|
|
public int LevelNumber { get; set; } = 0;
|
2025-09-10 16:16:05 +02:00
|
|
|
public StringName MapId { get; set; }
|
2025-02-27 08:37:55 +01:00
|
|
|
|
2025-03-24 16:56:35 +01:00
|
|
|
public float Health { get; set; }
|
|
|
|
|
public float Shield { get; set; }
|
2025-05-02 15:49:25 +02:00
|
|
|
|
|
|
|
|
public string EquippedWeaponId { get; set; }
|
2025-03-24 16:56:35 +01:00
|
|
|
|
2025-04-09 16:58:36 +02:00
|
|
|
public float DifficultyDamageMultiplier => this.Difficulty switch
|
|
|
|
|
{
|
2025-04-23 16:14:37 +02:00
|
|
|
DifficultyLevel.Easy => 1.4f,
|
|
|
|
|
DifficultyLevel.Normal => 1.2f,
|
2025-04-09 16:58:36 +02:00
|
|
|
DifficultyLevel.Hard or DifficultyLevel.Lunatic => 1f,
|
|
|
|
|
_ => 1f
|
|
|
|
|
};
|
|
|
|
|
|
2025-03-24 16:56:35 +01:00
|
|
|
public void NewSession()
|
|
|
|
|
{
|
|
|
|
|
Items = new();
|
2025-05-02 18:12:33 +02:00
|
|
|
EquippedWeaponId = string.Empty;
|
2025-03-24 16:56:35 +01:00
|
|
|
}
|
|
|
|
|
}
|