/
Vagabond132
/
TerrariaCourse
Обзор
Документация
Войти
/
Vagabond132
/
TerrariaCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Model/Blocks/AbstractBlock.cs
84 строки
3 KB
Vagabond132
Соглашение
13 янв 2025, 13:34
13 янв 2025, 13:34
8528b00
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Linq; using System.Numerics; using System.Text; using System.Threading.Tasks; namespace Model.Blocks { /// <summary> /// Блок /// </summary> public abstract class AbstractBlock { private string _name; private int _durability; private int _toolRequirement; private int _rarity; private char _sign; private int _value; public Vector2 Position { get; set; } /// <summary> /// Название блока /// </summary> public string Name { get => _name; set => _name = value; } /// <summary> /// Прочность /// </summary> public int Durability { get => _durability; set => _durability = value; } /// <summary> /// Инструмент /// </summary> public int ToolRequirement { get => _toolRequirement; set => _toolRequirement = value; } /// <summary> /// Редкость /// </summary> public int Rarity { get => _rarity; set => _rarity = value; } /// <summary> /// Есть ли коллизия с блоком /// </summary> protected bool HasCollision { get; set; } /// <summary> /// Может ли сущность заменять этот блок /// </summary> public bool CanBeReplaced { get; set; } /// <summary> /// Может ли сущность ставить этот блок /// </summary> public bool CanBePlaced { get; set; } /// <summary> /// Знак блока /// </summary> public char Sign { get => _sign; set => _sign = value; } /// <summary> /// Количество очков за блок /// </summary> public int Value { get => _value; set => _value = value; } /// <summary> /// Уменьшает прочность блока. /// </summary> /// <param name="parAmount">Величина урона</param> public void TakeDamage(int parAmount) { if (parAmount < 0) throw new ArgumentException("Damage amount cannot be negative."); Durability -= parAmount; if (Durability < 0) Durability = 0; } /// <summary> /// Проверяет, можно ли установить блок с данным уровнем инструмента. /// </summary> /// <param name="toolLevel">Уровень инструмента</param> /// <returns>True, если установка возможна</returns> public bool CanPlaceWithTool(int parToolLevel) { return parToolLevel >= ToolRequirement && CanBePlaced; } } }