Search code examples
c#classconsoleitems

Items for console game c#


I am new to coding and making a text based console rpg game. I want to implement an item based combat system, the problem being that I am unsure how to create new items with names and stats from a class. Could I be given an example of a simple item class to which I can easily call and create a new item?


Solution

  • You could use a Dictionary to manage your items so that you could spawn them or create them dynamically in your game. Here is a little example below.

    Program.cs:

    using System;
    using System.Collections.Generic;
    
    namespace RPGGame
    {
        class Program
        {
            static Dictionary<string, Item> items;
    
            static void Main(string[] args)
            {
                //
                items = new Dictionary<string, Item>();
    
                items.Add("sword", new Item("Gold Sword"));
    
                items["sword"].AddStat("Sharp");
                items["sword"].AddStat("Magic");
                items["sword"].AddStat("Attack");
    
                Console.WriteLine("Item: " + items["sword"].GetName());
    
                Console.WriteLine("Stats: ");
    
                foreach (string stats in items["sword"].GetStats())
                {
                    //
                    Console.WriteLine(" - " + stats);
                }
            }
        }
    }
    

    Item.cs:

    using System;
    using System.Collections.Generic;
    
    namespace RPGGame
    {
        public class Item
        {
            private string name;
            private List<string> stats;
    
            public Item(string name)
            {
                //
                this.name = name;
                this.stats = new List<string>();
            }
    
            public void SetName(string name)
            {
                //
                this.name = name;
            }
    
            public string GetName()
            {
                //
                return name;
            }
    
            public void AddStat(string stat)
            {
                //
                stats.Add(stat);
            }
    
            public List<string> GetStats()
            {
                //
                return stats;
            }
        }
    }