From 088ba67ae99038566263a9ffc6b243e0f1b5e2b8 Mon Sep 17 00:00:00 2001 From: northern_lights <1qpc69rplj@illubd.com> Date: Wed, 17 Dec 2025 23:26:01 +0100 Subject: [PATCH] adding files --- Dockerfile | 9 ++++++++ README.md | 1 + requirements.txt | 3 +++ server/src/models/__init__.py | 2 ++ server/src/models/items/__init__.py | 5 +++++ server/src/models/items/base_controller.py | 12 +++++++++++ server/src/models/items/base_item.py | 5 +++++ server/src/models/items/item.py | 6 ++++++ server/src/models/items/potion.py | 24 ++++++++++++++++++++++ server/src/models/player/__init__.py | 0 server/src/models/player/player.py | 2 ++ server/src/server.py | 3 +++ 12 files changed, 72 insertions(+) create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 requirements.txt create mode 100644 server/src/models/__init__.py create mode 100644 server/src/models/items/__init__.py create mode 100644 server/src/models/items/base_controller.py create mode 100644 server/src/models/items/base_item.py create mode 100644 server/src/models/items/item.py create mode 100644 server/src/models/items/potion.py create mode 100644 server/src/models/player/__init__.py create mode 100644 server/src/models/player/player.py create mode 100644 server/src/server.py diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9c20226 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,9 @@ +FROM python:latest + +WORKDIR /server + +COPY requirements.txt . + +RUN pip3 install -r requirements.txt + +CMD ["python3", "src/server.py"] \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..88d0840 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Northern Lights MMO Game made with Python \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..3f4324d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +sqlalchemy +psycopg2-binary +fastapi \ No newline at end of file diff --git a/server/src/models/__init__.py b/server/src/models/__init__.py new file mode 100644 index 0000000..88724dd --- /dev/null +++ b/server/src/models/__init__.py @@ -0,0 +1,2 @@ +from .items import * +from .player import * \ No newline at end of file diff --git a/server/src/models/items/__init__.py b/server/src/models/items/__init__.py new file mode 100644 index 0000000..aef669f --- /dev/null +++ b/server/src/models/items/__init__.py @@ -0,0 +1,5 @@ +from .item import Item +from .base_item import BaseItem +from .potion import Potion, Effect + +__all__ = ["Item", "BaseItem", "Potion", "Effect"] \ No newline at end of file diff --git a/server/src/models/items/base_controller.py b/server/src/models/items/base_controller.py new file mode 100644 index 0000000..3281397 --- /dev/null +++ b/server/src/models/items/base_controller.py @@ -0,0 +1,12 @@ +class ItemController: + def __init__(self, item: Item): + self.item = item + + def __use(self, target: Entity): + + + def __destroy(self): + try: + self.item.__destroy() + except Exception as e: + return e \ No newline at end of file diff --git a/server/src/models/items/base_item.py b/server/src/models/items/base_item.py new file mode 100644 index 0000000..1dfb755 --- /dev/null +++ b/server/src/models/items/base_item.py @@ -0,0 +1,5 @@ +class BaseItem: + def __init__(self, name: str, description: str, value: int): + self.name = name + self.description = description + self.value = value \ No newline at end of file diff --git a/server/src/models/items/item.py b/server/src/models/items/item.py new file mode 100644 index 0000000..7f93e6d --- /dev/null +++ b/server/src/models/items/item.py @@ -0,0 +1,6 @@ +from .base_item import BaseItem + +class Item: + def __init__(self, id: int, data: BaseItem): + self.id = id + self.data = data \ No newline at end of file diff --git a/server/src/models/items/potion.py b/server/src/models/items/potion.py new file mode 100644 index 0000000..97b2bbd --- /dev/null +++ b/server/src/models/items/potion.py @@ -0,0 +1,24 @@ +from .base_item import BaseItem + +class Effect: + def __init__(self, id, name): + self.id = id + self.name = name + + def __change_health(self, amount: int, target: Entity): + try: + return target.health.set(amount) + except Exception as e: + return e + +class Potion(BaseItem): + def __init__(self, duration: int, effect: Effect, *args, **kwargs): + super().__init__(*args, **kwargs) + self.duration = duration + self.effect = effect + + def __drink(self, target: Entity): + try: + return self.effect.target(target) + except Exception as e: + return e \ No newline at end of file diff --git a/server/src/models/player/__init__.py b/server/src/models/player/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/server/src/models/player/player.py b/server/src/models/player/player.py new file mode 100644 index 0000000..f0f5ef9 --- /dev/null +++ b/server/src/models/player/player.py @@ -0,0 +1,2 @@ +class Player: + __tablename__ = "player" \ No newline at end of file diff --git a/server/src/server.py b/server/src/server.py new file mode 100644 index 0000000..03c973d --- /dev/null +++ b/server/src/server.py @@ -0,0 +1,3 @@ +from models.items.potion import Potion, Effect + +health_potion = Potion(0, Effect(0, "heal"), 0, "Health Potion", "This item heals you for 5 HP") \ No newline at end of file