Git Product home page Git Product logo

gilbo-api's Introduction

Notice

This project has moved to Gitlab.

Gilbo-API

An API to design and create RPG text adventure games. Written in Python.

By using this API you agree to the license, and the licenses of the requirements.

Dependencies

*Must be downloaded separately.

You can install NumPy and dill by entering a command-line or terminal interface, and passing the following commands to pip:

pip install dill numpy

By using Gilbo's dependencies, you agree to their licenses.

Features & Documentation

Read the Wiki for documentation, feature lists, and ideas.

Notable Changelogs

v1.0.0

  • Initial release

gilbo-api's People

Contributors

iron-e avatar ravenjsnow avatar

gilbo-api's Issues

Create user interaction system

Right now, the only way to display text is to manually write all of it in.

It would be much easier to create an class that can read data from objects and output it based on how the class is called.

vendor_collection swap_item

test_vendor.swap_item(test_bow, test_player, 1)

test_bow is an instance of the weapons class. test_player is an instance of the player class.

File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 971, in
test_vendor.swap_item(test_bow, test_player, 1)
AttributeError: 'vendor' object has no attribute 'swap_item'

player_collection add_item

test_p_inv.add_itm(test_bow, 2)

test_bow is an instance of the weapons class. Trying to add any number of them to the player inventory doesn't seem to work.

File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 965, in
test_p_inv.add_itm(test_bow, 2)
File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 618, in add_itm
item_obtained.send(item=self.inventory())
TypeError: 'list' object is not callable

Changing player style

File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 1172, in
test_player.change_style(noob, mage)
TypeError: change_style() missing 1 required positional argument: 'new_style'

test_player.change_style(noob, mage)

@property #In Player Class
def change_style(old_style, new_style):
    for i in range(len(inv.items)):
        if inv.items[i].type_style is old_style:
            inv.rem_item(inv.items[i].type_style)
    style = new_style

item_collection rem_item & add_item

test_p_inv.rem_item(test_potion, 1)

File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 981, in
test_p_inv.rem_item(test_potion)
AttributeError: 'player_collection' object has no attribute 'rem_item'

test_p_inv.add_item(test_potion, 1)

File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 983, in
test_p_inv.add_item(test_potion, 1)
AttributeError: 'player_collection' object has no attribute 'add_item'

Battle_Manager, Magic Attack,

I keep getting this error whenever I try and pick an item from a list.

line 706, in init
print(self.battle_dict['player'].magic_list[action2].name)
IndexError: list index out of range

Equipped Items & Non-Equipped Items

Fix so that non-equipped items can't be used until equipped. Also make sure that it is possible to equip items. Weapons and Armor will have different codes. Armor might need a function.

object_tracker "spec_search" only detects for objects in the current file

Line 398:

if mapid in tracker.update_tracker('matrix_map'): is supposed to gather a disposable list of maps created in the game. However, if objects are created in a different file that imports Gilbo (see example) the objects are not reported.

A workaround was added to master in b572b1a to pass any set of objects to the tracker. I see two three possible workarounds:

  1. Make the user continually update the tracker (which may hog memory)
  2. Add a blinker dispatch signal to fill a temporary list in the location_manager class. However, this function would have to be defined by the user in the file where they import Gilbo, which would be a pain.
  3. Define all matrix_maps in the Gilbo-API file. I don't think that is acceptable.

"loc_man" full function

Problem

Right now, the location_manager cannot move and readout the objects that exist on a tile. It can only show a minimap of an area.

Goal

Flesh out location_manager and matrix_map classes to allow for readout of what objects are on a tile, and interaction with objects on that tile.

Effects and battle_manager

Try putting an effects function in the battler class. Each round in the battle manager it will check for that and change stats accordingly. Can also add buffs with this. Must stop after so much time. Test if true or false to turn on and off.

Split physical and elemental damage

Using battler_stats and the battle_manager`, there is no difference (other than flavor text) between physical and elemental damage.

Additionally, there is no good way to refresh mana as a physical trait. This should be added as well.

Allow for more complex item effects

Add a system to battle_manager that allows for items to have more complex effects than just buffing stats and healing.

Examples

  • Item that heals a small amount per turn
  • An item that damages the opponent a certain amount per turn
  • Overshield items

What is required

  • Creation of a new item class (funct_item or other) that accepts a function as its effect
  • Modification of battle_manager to allow the recognition of this new item class.

Convert "blinker" code into Django "dispatch" code

In order to solve #12, blinker has to be replaced as the pub-sub module in this project, seeing as blinker is an in-process event handler.

Django's dispatch module can do the things we need to do, and has been updated recently.

Work will begin on the debugging branch.

"detect_tile" cannot load more of a map

Problem

If a user wants to load only a small portion of a larger map, they will specify a certain row count in the location_manager's load_map function. However, upon reaching the end of the loaded map, it will display an error instead of loading more.

Goal

Allow the location manager to load more of a map when given only a portion of it.

player_collection equip

test_p_inv.equip(test_wand)

test_wand is an instance of the weapons class.

File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 966, in
test_p_inv.equip(test_wand)
File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 597, in equip
for i in range(len(self.equipped)):
AttributeError: 'player_collection' object has no attribute 'equipped'

Dispatcher Syntax Error

Traceback (most recent call last):
File "C:\Users\Clara\Documents\Gilbo-API-master\Gilbo-API-master\Gilbo-API.py", line 15, in
from dispatch import Signal, receiver
File "C:\Users\Clara\AppData\Local\Programs\Python\Python36-32\lib\site-packages\dispatch_init_.py", line 9, in
from dispatch.dispatcher import Signal
File "C:\Users\Clara\AppData\Local\Programs\Python\Python36-32\lib\site-packages\dispatch\dispatcher.py", line 198
except Exception, err:
^
SyntaxError: invalid syntax

There seems to be an error in the dispatch module itself. It is possible the module isn't installed correctly if it works on other computers.

Inventory Duplication

Make it so that duplicates in the inventory don't print multiple times, instead put a (x#) at the end. 5/1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.