{ "name": "OTHER", "class_name": "MVirtualTypeProp", "full_name": "test_prog::Object::OTHER", "mdoc": { "content": "Used for comparisons.", "location": { "column_end": 0, "column_start": 2, "line_end": 23, "line_start": 22, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "type"], "location": { "column_end": 28, "column_start": 2, "line_end": 23, "line_start": 22, "file": "test_location" }, "intro": { "full_name": "test_prog$Object$OTHER" }, "intro_mclassdef": { "full_name": "test_prog$Object" }, "mpropdefs": [{ "full_name": "test_prog$Object$OTHER" }], "intro_mclass": { "full_name": "test_prog::Object" }, "mpackage": { "full_name": "test_prog" }, "mvirtualtype": { "full_name": "test_prog::Object::OTHER" }, "bound": { "full_name": "nullable test_prog::Object" } } { "name": "==", "class_name": "MMethod", "full_name": "test_prog::Object::==", "mdoc": { "content": "Is `other` equqls to `self`?", "location": { "column_end": 0, "column_start": 2, "line_end": 26, "line_start": 25, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 37, "column_start": 2, "line_end": 26, "line_start": 25, "file": "test_location" }, "intro": { "full_name": "test_prog$Object$==" }, "intro_mclassdef": { "full_name": "test_prog$Object" }, "mpropdefs": [{ "full_name": "test_prog$Object$==" }], "intro_mclass": { "full_name": "test_prog::Object" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "other", "mtype": { "full_name": "test_prog::Object::OTHER" } }], "return_mtype": { "full_name": "test_prog::Bool" }, "vararg_rank": -1 } } { "name": "!=", "class_name": "MMethod", "full_name": "test_prog::Object::!=", "mdoc": { "content": "Is `other` different from `self`?", "location": { "column_end": 0, "column_start": 2, "line_end": 29, "line_start": 28, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 55, "column_start": 2, "line_end": 29, "line_start": 28, "file": "test_location" }, "intro": { "full_name": "test_prog$Object$!=" }, "intro_mclassdef": { "full_name": "test_prog$Object" }, "mpropdefs": [{ "full_name": "test_prog$Object$!=" }], "intro_mclass": { "full_name": "test_prog::Object" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "other", "mtype": { "full_name": "test_prog::Object::OTHER" } }], "return_mtype": { "full_name": "test_prog::Bool" }, "vararg_rank": -1 } } { "name": "init", "class_name": "MMethod", "full_name": "test_prog::Object::init", "mdoc": null, "visibility": "public", "modifiers": ["public", "init"], "location": { "column_end": 3, "column_start": 1, "line_end": 30, "line_start": 20, "file": "test_location" }, "intro": { "full_name": "test_prog$Object$init" }, "intro_mclassdef": { "full_name": "test_prog$Object" }, "mpropdefs": [{ "full_name": "test_prog$Elf$Object::init" }, { "full_name": "test_prog$Career$Object::init" }, { "full_name": "test_prog$Warrior$Object::init" }, { "full_name": "test_prog$Magician$Object::init" }, { "full_name": "test_prog$Alcoholic$Object::init" }, { "full_name": "test_prog$Race$Object::init" }, { "full_name": "test_prog$Human$Object::init" }, { "full_name": "test_prog$Dwarf$Object::init" }, { "full_name": "test_prog$Character$Object::init" }, { "full_name": "test_prog$Object$init" }], "intro_mclass": { "full_name": "test_prog::Object" }, "mpackage": { "full_name": "test_prog" }, "is_init": true, "msignature": { "arity": 0, "mparams": [], "return_mtype": null, "vararg_rank": -1 } } { "name": "unary -", "class_name": "MMethod", "full_name": "test_prog::Int::unary -", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 21, "column_start": 2, "line_end": 34, "line_start": 34, "file": "test_location" }, "intro": { "full_name": "test_prog$Int$unary -" }, "intro_mclassdef": { "full_name": "test_prog$Int" }, "mpropdefs": [{ "full_name": "test_prog$Int$unary -" }], "intro_mclass": { "full_name": "test_prog::Int" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "+", "class_name": "MMethod", "full_name": "test_prog::Int::+", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 29, "column_start": 2, "line_end": 35, "line_start": 35, "file": "test_location" }, "intro": { "full_name": "test_prog$Int$+" }, "intro_mclassdef": { "full_name": "test_prog$Int" }, "mpropdefs": [{ "full_name": "test_prog$Int$+" }], "intro_mclass": { "full_name": "test_prog::Int" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "i", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "-", "class_name": "MMethod", "full_name": "test_prog::Int::-", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 29, "column_start": 2, "line_end": 36, "line_start": 36, "file": "test_location" }, "intro": { "full_name": "test_prog$Int$-" }, "intro_mclassdef": { "full_name": "test_prog$Int" }, "mpropdefs": [{ "full_name": "test_prog$Int$-" }], "intro_mclass": { "full_name": "test_prog::Int" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "i", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "*", "class_name": "MMethod", "full_name": "test_prog::Int::*", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 29, "column_start": 2, "line_end": 37, "line_start": 37, "file": "test_location" }, "intro": { "full_name": "test_prog$Int$*" }, "intro_mclassdef": { "full_name": "test_prog$Int" }, "mpropdefs": [{ "full_name": "test_prog$Int$*" }], "intro_mclass": { "full_name": "test_prog::Int" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "i", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "/", "class_name": "MMethod", "full_name": "test_prog::Int::/", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 29, "column_start": 2, "line_end": 38, "line_start": 38, "file": "test_location" }, "intro": { "full_name": "test_prog$Int$/" }, "intro_mclassdef": { "full_name": "test_prog$Int" }, "mpropdefs": [{ "full_name": "test_prog$Int$/" }], "intro_mclass": { "full_name": "test_prog::Int" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "i", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": ">", "class_name": "MMethod", "full_name": "test_prog::Int::>", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 30, "column_start": 2, "line_end": 39, "line_start": 39, "file": "test_location" }, "intro": { "full_name": "test_prog$Int$>" }, "intro_mclassdef": { "full_name": "test_prog$Int" }, "mpropdefs": [{ "full_name": "test_prog$Int$>" }], "intro_mclass": { "full_name": "test_prog::Int" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "i", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": { "full_name": "test_prog::Bool" }, "vararg_rank": -1 } } { "name": "to_f", "class_name": "MMethod", "full_name": "test_prog::Int::to_f", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 26, "column_start": 2, "line_end": 40, "line_start": 40, "file": "test_location" }, "intro": { "full_name": "test_prog$Int$to_f" }, "intro_mclassdef": { "full_name": "test_prog$Int" }, "mpropdefs": [{ "full_name": "test_prog$Int$to_f" }], "intro_mclass": { "full_name": "test_prog::Int" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Float" }, "vararg_rank": -1 } } { "name": "+", "class_name": "MMethod", "full_name": "test_prog::Float::+", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 33, "column_start": 2, "line_end": 45, "line_start": 45, "file": "test_location" }, "intro": { "full_name": "test_prog$Float$+" }, "intro_mclassdef": { "full_name": "test_prog$Float" }, "mpropdefs": [{ "full_name": "test_prog$Float$+" }], "intro_mclass": { "full_name": "test_prog::Float" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "f", "mtype": { "full_name": "test_prog::Float" } }], "return_mtype": { "full_name": "test_prog::Float" }, "vararg_rank": -1 } } { "name": "-", "class_name": "MMethod", "full_name": "test_prog::Float::-", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 33, "column_start": 2, "line_end": 46, "line_start": 46, "file": "test_location" }, "intro": { "full_name": "test_prog$Float$-" }, "intro_mclassdef": { "full_name": "test_prog$Float" }, "mpropdefs": [{ "full_name": "test_prog$Float$-" }], "intro_mclass": { "full_name": "test_prog::Float" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "f", "mtype": { "full_name": "test_prog::Float" } }], "return_mtype": { "full_name": "test_prog::Float" }, "vararg_rank": -1 } } { "name": "*", "class_name": "MMethod", "full_name": "test_prog::Float::*", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 33, "column_start": 2, "line_end": 47, "line_start": 47, "file": "test_location" }, "intro": { "full_name": "test_prog$Float$*" }, "intro_mclassdef": { "full_name": "test_prog$Float" }, "mpropdefs": [{ "full_name": "test_prog$Float$*" }], "intro_mclass": { "full_name": "test_prog::Float" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "f", "mtype": { "full_name": "test_prog::Float" } }], "return_mtype": { "full_name": "test_prog::Float" }, "vararg_rank": -1 } } { "name": "/", "class_name": "MMethod", "full_name": "test_prog::Float::/", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 33, "column_start": 2, "line_end": 48, "line_start": 48, "file": "test_location" }, "intro": { "full_name": "test_prog$Float$/" }, "intro_mclassdef": { "full_name": "test_prog$Float" }, "mpropdefs": [{ "full_name": "test_prog$Float$/" }], "intro_mclass": { "full_name": "test_prog::Float" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "f", "mtype": { "full_name": "test_prog::Float" } }], "return_mtype": { "full_name": "test_prog::Float" }, "vararg_rank": -1 } } { "name": ">", "class_name": "MMethod", "full_name": "test_prog::Float::>", "mdoc": null, "visibility": "public", "modifiers": ["public", "intern", "fun"], "location": { "column_end": 32, "column_start": 2, "line_end": 49, "line_start": 49, "file": "test_location" }, "intro": { "full_name": "test_prog$Float$>" }, "intro_mclassdef": { "full_name": "test_prog$Float" }, "mpropdefs": [{ "full_name": "test_prog$Float$>" }], "intro_mclass": { "full_name": "test_prog::Float" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "f", "mtype": { "full_name": "test_prog::Float" } }], "return_mtype": { "full_name": "test_prog::Bool" }, "vararg_rank": -1 } } { "name": "_strength_bonus", "class_name": "MAttribute", "full_name": "test_prog::careers::Career::_strength_bonus", "mdoc": null, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 24, "column_start": 2, "line_end": 31, "line_start": 31, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$_strength_bonus" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$_strength_bonus" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "strength_bonus", "class_name": "MMethod", "full_name": "test_prog::Career::strength_bonus", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 24, "column_start": 2, "line_end": 31, "line_start": 31, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$strength_bonus" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$strength_bonus" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "strength_bonus=", "class_name": "MMethod", "full_name": "test_prog::Career::strength_bonus=", "mdoc": null, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 24, "column_start": 2, "line_end": 31, "line_start": 31, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$strength_bonus=" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$strength_bonus=" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "strength_bonus", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_endurance_bonus", "class_name": "MAttribute", "full_name": "test_prog::careers::Career::_endurance_bonus", "mdoc": null, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 25, "column_start": 2, "line_end": 32, "line_start": 32, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$_endurance_bonus" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$_endurance_bonus" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "endurance_bonus", "class_name": "MMethod", "full_name": "test_prog::Career::endurance_bonus", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 25, "column_start": 2, "line_end": 32, "line_start": 32, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$endurance_bonus" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$endurance_bonus" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "endurance_bonus=", "class_name": "MMethod", "full_name": "test_prog::Career::endurance_bonus=", "mdoc": null, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 25, "column_start": 2, "line_end": 32, "line_start": 32, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$endurance_bonus=" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$endurance_bonus=" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "endurance_bonus", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_intelligence_bonus", "class_name": "MAttribute", "full_name": "test_prog::careers::Career::_intelligence_bonus", "mdoc": null, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 28, "column_start": 2, "line_end": 33, "line_start": 33, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$_intelligence_bonus" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$_intelligence_bonus" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "intelligence_bonus", "class_name": "MMethod", "full_name": "test_prog::Career::intelligence_bonus", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 28, "column_start": 2, "line_end": 33, "line_start": 33, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$intelligence_bonus" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$intelligence_bonus" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "intelligence_bonus=", "class_name": "MMethod", "full_name": "test_prog::Career::intelligence_bonus=", "mdoc": null, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 28, "column_start": 2, "line_end": 33, "line_start": 33, "file": "test_location" }, "intro": { "full_name": "test_prog$Career$intelligence_bonus=" }, "intro_mclassdef": { "full_name": "test_prog$Career" }, "mpropdefs": [{ "full_name": "test_prog$Career$intelligence_bonus=" }], "intro_mclass": { "full_name": "test_prog::Career" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "intelligence_bonus", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_base_strength", "class_name": "MAttribute", "full_name": "test_prog::races::Race::_base_strength", "mdoc": { "content": "Used to represents how strong the race is.", "location": { "column_end": 0, "column_start": 2, "line_end": 36, "line_start": 35, "file": "test_location" } }, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 23, "column_start": 2, "line_end": 36, "line_start": 35, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$_base_strength" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$_base_strength" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "base_strength", "class_name": "MMethod", "full_name": "test_prog::Race::base_strength", "mdoc": { "content": "Used to represents how strong the race is.", "location": { "column_end": 0, "column_start": 2, "line_end": 36, "line_start": 35, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 23, "column_start": 2, "line_end": 36, "line_start": 35, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$base_strength" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$base_strength" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "base_strength=", "class_name": "MMethod", "full_name": "test_prog::Race::base_strength=", "mdoc": { "content": "Used to represents how strong the race is.", "location": { "column_end": 0, "column_start": 2, "line_end": 36, "line_start": 35, "file": "test_location" } }, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 23, "column_start": 2, "line_end": 36, "line_start": 35, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$base_strength=" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$base_strength=" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "base_strength", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_base_endurance", "class_name": "MAttribute", "full_name": "test_prog::races::Race::_base_endurance", "mdoc": { "content": "Used to represents how the race can absorb damage.", "location": { "column_end": 0, "column_start": 2, "line_end": 39, "line_start": 38, "file": "test_location" } }, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 24, "column_start": 2, "line_end": 39, "line_start": 38, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$_base_endurance" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$_base_endurance" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "base_endurance", "class_name": "MMethod", "full_name": "test_prog::Race::base_endurance", "mdoc": { "content": "Used to represents how the race can absorb damage.", "location": { "column_end": 0, "column_start": 2, "line_end": 39, "line_start": 38, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 24, "column_start": 2, "line_end": 39, "line_start": 38, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$base_endurance" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$base_endurance" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "base_endurance=", "class_name": "MMethod", "full_name": "test_prog::Race::base_endurance=", "mdoc": { "content": "Used to represents how the race can absorb damage.", "location": { "column_end": 0, "column_start": 2, "line_end": 39, "line_start": 38, "file": "test_location" } }, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 24, "column_start": 2, "line_end": 39, "line_start": 38, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$base_endurance=" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$base_endurance=" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "base_endurance", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_base_intelligence", "class_name": "MAttribute", "full_name": "test_prog::races::Race::_base_intelligence", "mdoc": { "content": "Is this race smart?", "location": { "column_end": 0, "column_start": 2, "line_end": 42, "line_start": 41, "file": "test_location" } }, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 27, "column_start": 2, "line_end": 42, "line_start": 41, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$_base_intelligence" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$_base_intelligence" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "base_intelligence", "class_name": "MMethod", "full_name": "test_prog::Race::base_intelligence", "mdoc": { "content": "Is this race smart?", "location": { "column_end": 0, "column_start": 2, "line_end": 42, "line_start": 41, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 27, "column_start": 2, "line_end": 42, "line_start": 41, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$base_intelligence" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$base_intelligence" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "base_intelligence=", "class_name": "MMethod", "full_name": "test_prog::Race::base_intelligence=", "mdoc": { "content": "Is this race smart?", "location": { "column_end": 0, "column_start": 2, "line_end": 42, "line_start": 41, "file": "test_location" } }, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 27, "column_start": 2, "line_end": 42, "line_start": 41, "file": "test_location" }, "intro": { "full_name": "test_prog$Race$base_intelligence=" }, "intro_mclassdef": { "full_name": "test_prog$Race" }, "mpropdefs": [{ "full_name": "test_prog$Race$base_intelligence=" }], "intro_mclass": { "full_name": "test_prog::Race" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "base_intelligence", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_race", "class_name": "MAttribute", "full_name": "test_prog::character::Character::_race", "mdoc": { "content": "The `Race` of the character.", "location": { "column_end": 0, "column_start": 2, "line_end": 25, "line_start": 24, "file": "test_location" } }, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 15, "column_start": 2, "line_end": 25, "line_start": 24, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$_race" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$_race" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Race" } } { "name": "race", "class_name": "MMethod", "full_name": "test_prog::Character::race", "mdoc": { "content": "The `Race` of the character.", "location": { "column_end": 0, "column_start": 2, "line_end": 25, "line_start": 24, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 15, "column_start": 2, "line_end": 25, "line_start": 24, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$race" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$race" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Race" }, "vararg_rank": -1 } } { "name": "race=", "class_name": "MMethod", "full_name": "test_prog::Character::race=", "mdoc": { "content": "The `Race` of the character.", "location": { "column_end": 0, "column_start": 2, "line_end": 25, "line_start": 24, "file": "test_location" } }, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 15, "column_start": 2, "line_end": 25, "line_start": 24, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$race=" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$race=" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "race", "mtype": { "full_name": "test_prog::Race" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_career", "class_name": "MAttribute", "full_name": "test_prog::character::Character::_career", "mdoc": { "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", "location": { "column_end": 0, "column_start": 2, "line_end": 29, "line_start": 27, "file": "test_location" } }, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 47, "column_start": 2, "line_end": 29, "line_start": 27, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$_career" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$_career" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "nullable test_prog::Career" } } { "name": "career", "class_name": "MMethod", "full_name": "test_prog::Character::career", "mdoc": { "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", "location": { "column_end": 0, "column_start": 2, "line_end": 29, "line_start": 27, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 47, "column_start": 2, "line_end": 29, "line_start": 27, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$career" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$career" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "nullable test_prog::Career" }, "vararg_rank": -1 } } { "name": "career=", "class_name": "MMethod", "full_name": "test_prog::Character::career=", "mdoc": { "content": "The current `Career` of the character.\nReturns `null` if character is unemployed.", "location": { "column_end": 0, "column_start": 2, "line_end": 29, "line_start": 27, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 47, "column_start": 2, "line_end": 29, "line_start": 27, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$career=" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$career=" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "career", "mtype": { "full_name": "nullable test_prog::Career" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "quit", "class_name": "MMethod", "full_name": "test_prog::Character::quit", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 4, "column_start": 2, "line_end": 33, "line_start": 31, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$quit" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$quit" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": null, "vararg_rank": -1 } } { "name": "_name", "class_name": "MAttribute", "full_name": "test_prog::character::Character::_name", "mdoc": null, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 17, "column_start": 2, "line_end": 35, "line_start": 35, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$_name" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$_name" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::String" } } { "name": "name", "class_name": "MMethod", "full_name": "test_prog::Character::name", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 17, "column_start": 2, "line_end": 35, "line_start": 35, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$name" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$name" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::String" }, "vararg_rank": -1 } } { "name": "name=", "class_name": "MMethod", "full_name": "test_prog::Character::name=", "mdoc": null, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 17, "column_start": 2, "line_end": 35, "line_start": 35, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$name=" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$name=" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "name", "mtype": { "full_name": "test_prog::String" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_age", "class_name": "MAttribute", "full_name": "test_prog::character::Character::_age", "mdoc": null, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 13, "column_start": 2, "line_end": 36, "line_start": 36, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$_age" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$_age" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "age", "class_name": "MMethod", "full_name": "test_prog::Character::age", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 13, "column_start": 2, "line_end": 36, "line_start": 36, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$age" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$age" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "age=", "class_name": "MMethod", "full_name": "test_prog::Character::age=", "mdoc": null, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 13, "column_start": 2, "line_end": 36, "line_start": 36, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$age=" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$age=" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "age", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "_sex", "class_name": "MAttribute", "full_name": "test_prog::character::Character::_sex", "mdoc": null, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 14, "column_start": 2, "line_end": 37, "line_start": 37, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$_sex" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$_sex" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Bool" } } { "name": "sex", "class_name": "MMethod", "full_name": "test_prog::Character::sex", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 14, "column_start": 2, "line_end": 37, "line_start": 37, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$sex" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$sex" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Bool" }, "vararg_rank": -1 } } { "name": "sex=", "class_name": "MMethod", "full_name": "test_prog::Character::sex=", "mdoc": null, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 14, "column_start": 2, "line_end": 37, "line_start": 37, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$sex=" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$sex=" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "sex", "mtype": { "full_name": "test_prog::Bool" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "total_strengh", "class_name": "MMethod", "full_name": "test_prog::Character::total_strengh", "mdoc": { "content": "The actual strength of the character.\n\nReturns `race.base_strength + career.strength_bonus` or just `race.base_strength` is unemployed.", "location": { "column_end": 0, "column_start": 2, "line_end": 42, "line_start": 39, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 4, "column_start": 2, "line_end": 45, "line_start": 39, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$total_strengh" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$total_strengh" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "total_endurance", "class_name": "MMethod", "full_name": "test_prog::Character::total_endurance", "mdoc": { "content": "The actual endurance of the character.", "location": { "column_end": 0, "column_start": 2, "line_end": 48, "line_start": 47, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 4, "column_start": 2, "line_end": 51, "line_start": 47, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$total_endurance" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$total_endurance" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "total_intelligence", "class_name": "MMethod", "full_name": "test_prog::Character::total_intelligence", "mdoc": { "content": "The acutal intelligence of the character.", "location": { "column_end": 0, "column_start": 2, "line_end": 54, "line_start": 53, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 4, "column_start": 2, "line_end": 57, "line_start": 53, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$total_intelligence" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$total_intelligence" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "max_health", "class_name": "MMethod", "full_name": "test_prog::Character::max_health", "mdoc": { "content": "Maximum health of the character.\n\nBased on `total endurance * 10`.", "location": { "column_end": 0, "column_start": 2, "line_end": 62, "line_start": 59, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 51, "column_start": 2, "line_end": 62, "line_start": 59, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$max_health" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$max_health" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "_health", "class_name": "MAttribute", "full_name": "test_prog::character::Character::_health", "mdoc": { "content": "The current `health` of the character.\n\nStarts at `max_health`.", "location": { "column_end": 0, "column_start": 2, "line_end": 67, "line_start": 64, "file": "test_location" } }, "visibility": "private", "modifiers": ["private", "var"], "location": { "column_end": 29, "column_start": 2, "line_end": 67, "line_start": 64, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$_health" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$_health" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "static_mtype": { "full_name": "test_prog::Int" } } { "name": "health", "class_name": "MMethod", "full_name": "test_prog::Character::health", "mdoc": { "content": "The current `health` of the character.\n\nStarts at `max_health`.", "location": { "column_end": 0, "column_start": 2, "line_end": 67, "line_start": 64, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 29, "column_start": 2, "line_end": 67, "line_start": 64, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$health" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$health" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "health=", "class_name": "MMethod", "full_name": "test_prog::Character::health=", "mdoc": { "content": "The current `health` of the character.\n\nStarts at `max_health`.", "location": { "column_end": 0, "column_start": 2, "line_end": 67, "line_start": 64, "file": "test_location" } }, "visibility": "protected", "modifiers": ["protected", "fun"], "location": { "column_end": 29, "column_start": 2, "line_end": 67, "line_start": 64, "file": "test_location" }, "intro": { "full_name": "test_prog$Character$health=" }, "intro_mclassdef": { "full_name": "test_prog$Character" }, "mpropdefs": [{ "full_name": "test_prog$Character$health=" }], "intro_mclass": { "full_name": "test_prog::Character" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "health", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": null, "vararg_rank": -1 } } { "name": "dps", "class_name": "MMethod", "full_name": "test_prog::Weapon::dps", "mdoc": { "content": "Damage per second inflicted by this weapon.", "location": { "column_end": 0, "column_start": 2, "line_end": 23, "line_start": 22, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 27, "column_start": 2, "line_end": 23, "line_start": 22, "file": "test_location" }, "intro": { "full_name": "test_prog$Weapon$dps" }, "intro_mclassdef": { "full_name": "test_prog$Weapon" }, "mpropdefs": [{ "full_name": "test_prog$Weapon$dps" }, { "full_name": "test_prog::combat$Dwarf$Weapon::dps" }], "intro_mclass": { "full_name": "test_prog::Weapon" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Float" }, "vararg_rank": -1 } } { "name": "hit_points", "class_name": "MMethod", "full_name": "test_prog::Combatable::hit_points", "mdoc": null, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 32, "column_start": 2, "line_end": 32, "line_start": 32, "file": "test_location" }, "intro": { "full_name": "test_prog$Combatable$hit_points" }, "intro_mclassdef": { "full_name": "test_prog$Combatable" }, "mpropdefs": [{ "full_name": "test_prog$Combatable$hit_points" }, { "full_name": "test_prog::combat$Character$Combatable::hit_points" }], "intro_mclass": { "full_name": "test_prog::Combatable" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "attack", "class_name": "MMethod", "full_name": "test_prog::Combatable::attack", "mdoc": { "content": "A `Combatable` can attack a `target` that is also a `Combatable`.\n\nAttack the `target` using `wepaon` and returns the number of inflicted hit points.", "location": { "column_end": 0, "column_start": 2, "line_end": 37, "line_start": 34, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 64, "column_start": 2, "line_end": 37, "line_start": 34, "file": "test_location" }, "intro": { "full_name": "test_prog$Combatable$attack" }, "intro_mclassdef": { "full_name": "test_prog$Combatable" }, "mpropdefs": [{ "full_name": "test_prog$Combatable$attack" }], "intro_mclass": { "full_name": "test_prog::Combatable" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 2, "mparams": [{ "is_vararg": false, "name": "target", "mtype": { "full_name": "test_prog::Combatable" } }, { "is_vararg": false, "name": "weapon", "mtype": { "full_name": "test_prog::Weapon" } }], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "direct_attack", "class_name": "MMethod", "full_name": "test_prog::Combatable::direct_attack", "mdoc": { "content": "Like `attack` but cannot be defended.", "location": { "column_end": 0, "column_start": 2, "line_end": 40, "line_start": 39, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 71, "column_start": 2, "line_end": 40, "line_start": 39, "file": "test_location" }, "intro": { "full_name": "test_prog$Combatable$direct_attack" }, "intro_mclassdef": { "full_name": "test_prog$Combatable" }, "mpropdefs": [{ "full_name": "test_prog$Combatable$direct_attack" }], "intro_mclass": { "full_name": "test_prog::Combatable" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 2, "mparams": [{ "is_vararg": false, "name": "target", "mtype": { "full_name": "test_prog::Combatable" } }, { "is_vararg": false, "name": "weapon", "mtype": { "full_name": "test_prog::Weapon" } }], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "defend", "class_name": "MMethod", "full_name": "test_prog::Combatable::defend", "mdoc": { "content": "`Combatable` can defend against attacks.\n\nDefends against a number of received hit points and return the number of pared hit points.\n\n@param hit: damage received.", "location": { "column_end": 0, "column_start": 2, "line_end": 47, "line_start": 42, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 38, "column_start": 2, "line_end": 47, "line_start": 42, "file": "test_location" }, "intro": { "full_name": "test_prog$Combatable$defend" }, "intro_mclassdef": { "full_name": "test_prog$Combatable" }, "mpropdefs": [{ "full_name": "test_prog$Combatable$defend" }], "intro_mclass": { "full_name": "test_prog::Combatable" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 1, "mparams": [{ "is_vararg": false, "name": "hit", "mtype": { "full_name": "test_prog::Int" } }], "return_mtype": { "full_name": "test_prog::Int" }, "vararg_rank": -1 } } { "name": "is_dead", "class_name": "MMethod", "full_name": "test_prog::Combatable::is_dead", "mdoc": { "content": "Is the character still have hit_points?", "location": { "column_end": 0, "column_start": 2, "line_end": 50, "line_start": 49, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 43, "column_start": 2, "line_end": 50, "line_start": 49, "file": "test_location" }, "intro": { "full_name": "test_prog$Combatable$is_dead" }, "intro_mclassdef": { "full_name": "test_prog$Combatable" }, "mpropdefs": [{ "full_name": "test_prog$Combatable$is_dead" }], "intro_mclass": { "full_name": "test_prog::Combatable" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::Bool" }, "vararg_rank": -1 } } { "name": "player_characters", "class_name": "MMethod", "full_name": "test_prog::Game::player_characters", "mdoc": { "content": "Characters played by human players.", "location": { "column_end": 0, "column_start": 2, "line_end": 26, "line_start": 25, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 51, "column_start": 2, "line_end": 26, "line_start": 25, "file": "test_location" }, "intro": { "full_name": "test_prog$Game$player_characters" }, "intro_mclassdef": { "full_name": "test_prog$Game" }, "mpropdefs": [{ "full_name": "test_prog$Game$player_characters" }], "intro_mclass": { "full_name": "test_prog::Game" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::List[test_prog::Character]" }, "vararg_rank": -1 } } { "name": "computer_characters", "class_name": "MMethod", "full_name": "test_prog::Game::computer_characters", "mdoc": { "content": "Characters players by computer.", "location": { "column_end": 0, "column_start": 2, "line_end": 29, "line_start": 28, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 53, "column_start": 2, "line_end": 29, "line_start": 28, "file": "test_location" }, "intro": { "full_name": "test_prog$Game$computer_characters" }, "intro_mclassdef": { "full_name": "test_prog$Game" }, "mpropdefs": [{ "full_name": "test_prog$Game$computer_characters" }], "intro_mclass": { "full_name": "test_prog::Game" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": { "full_name": "test_prog::List[test_prog::Character]" }, "vararg_rank": -1 } } { "name": "start_game", "class_name": "MMethod", "full_name": "test_prog::Game::start_game", "mdoc": { "content": "Start the game.\n\nYou have to implement that method!", "location": { "column_end": 0, "column_start": 2, "line_end": 34, "line_start": 31, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 27, "column_start": 2, "line_end": 34, "line_start": 31, "file": "test_location" }, "intro": { "full_name": "test_prog$Game$start_game" }, "intro_mclassdef": { "full_name": "test_prog$Game" }, "mpropdefs": [{ "full_name": "test_prog$Game$start_game" }], "intro_mclass": { "full_name": "test_prog::Game" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": null, "vararg_rank": -1 } } { "name": "pause_game", "class_name": "MMethod", "full_name": "test_prog::Game::pause_game", "mdoc": { "content": "Pause the game.\n\nYou have to implement that method!", "location": { "column_end": 0, "column_start": 2, "line_end": 39, "line_start": 36, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 27, "column_start": 2, "line_end": 39, "line_start": 36, "file": "test_location" }, "intro": { "full_name": "test_prog$Game$pause_game" }, "intro_mclassdef": { "full_name": "test_prog$Game" }, "mpropdefs": [{ "full_name": "test_prog$Game$pause_game" }], "intro_mclass": { "full_name": "test_prog::Game" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": null, "vararg_rank": -1 } } { "name": "stop_game", "class_name": "MMethod", "full_name": "test_prog::Game::stop_game", "mdoc": { "content": "Stop the game.\n\nYou have to implement that method!", "location": { "column_end": 0, "column_start": 2, "line_end": 44, "line_start": 41, "file": "test_location" } }, "visibility": "public", "modifiers": ["public", "abstract", "fun"], "location": { "column_end": 26, "column_start": 2, "line_end": 44, "line_start": 41, "file": "test_location" }, "intro": { "full_name": "test_prog$Game$stop_game" }, "intro_mclassdef": { "full_name": "test_prog$Game" }, "mpropdefs": [{ "full_name": "test_prog$Game$stop_game" }], "intro_mclass": { "full_name": "test_prog::Game" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": null, "vararg_rank": -1 } } { "name": "start", "class_name": "MMethod", "full_name": "test_prog::Starter::start", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 17, "column_start": 2, "line_end": 22, "line_start": 22, "file": "test_location" }, "intro": { "full_name": "test_prog$Starter$start" }, "intro_mclassdef": { "full_name": "test_prog$Starter" }, "mpropdefs": [{ "full_name": "test_prog$Starter$start" }], "intro_mclass": { "full_name": "test_prog::Starter" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": null, "vararg_rank": -1 } } { "name": "main", "class_name": "MMethod", "full_name": "test_prog::Sys::main", "mdoc": null, "visibility": "public", "modifiers": ["public", "fun"], "location": { "column_end": 13, "column_start": 1, "line_end": 26, "line_start": 25, "file": "test_location" }, "intro": { "full_name": "test_prog$Sys$main" }, "intro_mclassdef": { "full_name": "test_prog$Sys" }, "mpropdefs": [{ "full_name": "test_prog$Sys$main" }], "intro_mclass": { "full_name": "test_prog::Sys" }, "mpackage": { "full_name": "test_prog" }, "is_init": false, "msignature": { "arity": 0, "mparams": [], "return_mtype": null, "vararg_rank": -1 } }