Initial release
17
CHANGELOG.md
Normal file
@ -0,0 +1,17 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/).
|
||||
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
- No further feature planned.
|
||||
|
||||
|
||||
|
||||
## [0.1.0] - 2021-05-03
|
||||
### Added
|
||||
|
||||
- Initial release.
|
191
LICENCE.txt
Executable file
@ -0,0 +1,191 @@
|
||||
EUROPEAN UNION PUBLIC LICENCE v. 1.2
|
||||
EUPL © the European Union 2007, 2016
|
||||
|
||||
This European Union Public Licence (the ‘EUPL’) applies to the Work (as defined below) which is provided under the
|
||||
terms of this Licence. Any use of the Work, other than as authorised under this Licence is prohibited (to the extent such
|
||||
use is covered by a right of the copyright holder of the Work).
|
||||
The Work is provided under the terms of this Licence when the Licensor (as defined below) has placed the following
|
||||
notice immediately following the copyright notice for the Work:
|
||||
Licensed under the EUPL
|
||||
or has expressed by any other means his willingness to license under the EUPL.
|
||||
|
||||
1.Definitions
|
||||
In this Licence, the following terms have the following meaning:
|
||||
— ‘The Licence’:this Licence.
|
||||
— ‘The Original Work’:the work or software distributed or communicated by the Licensor under this Licence, available
|
||||
as Source Code and also as Executable Code as the case may be.
|
||||
— ‘Derivative Works’:the works or software that could be created by the Licensee, based upon the Original Work or
|
||||
modifications thereof. This Licence does not define the extent of modification or dependence on the Original Work
|
||||
required in order to classify a work as a Derivative Work; this extent is determined by copyright law applicable in
|
||||
the country mentioned in Article 15.
|
||||
— ‘The Work’:the Original Work or its Derivative Works.
|
||||
— ‘The Source Code’:the human-readable form of the Work which is the most convenient for people to study and
|
||||
modify.
|
||||
— ‘The Executable Code’:any code which has generally been compiled and which is meant to be interpreted by
|
||||
a computer as a program.
|
||||
— ‘The Licensor’:the natural or legal person that distributes or communicates the Work under the Licence.
|
||||
— ‘Contributor(s)’:any natural or legal person who modifies the Work under the Licence, or otherwise contributes to
|
||||
the creation of a Derivative Work.
|
||||
— ‘The Licensee’ or ‘You’:any natural or legal person who makes any usage of the Work under the terms of the
|
||||
Licence.
|
||||
— ‘Distribution’ or ‘Communication’:any act of selling, giving, lending, renting, distributing, communicating,
|
||||
transmitting, or otherwise making available, online or offline, copies of the Work or providing access to its essential
|
||||
functionalities at the disposal of any other natural or legal person.
|
||||
|
||||
2.Scope of the rights granted by the Licence
|
||||
The Licensor hereby grants You a worldwide, royalty-free, non-exclusive, sublicensable licence to do the following, for
|
||||
the duration of copyright vested in the Original Work:
|
||||
— use the Work in any circumstance and for all usage,
|
||||
— reproduce the Work,
|
||||
— modify the Work, and make Derivative Works based upon the Work,
|
||||
— communicate to the public, including the right to make available or display the Work or copies thereof to the public
|
||||
and perform publicly, as the case may be, the Work,
|
||||
— distribute the Work or copies thereof,
|
||||
— lend and rent the Work or copies thereof,
|
||||
— sublicense rights in the Work or copies thereof.
|
||||
Those rights can be exercised on any media, supports and formats, whether now known or later invented, as far as the
|
||||
applicable law permits so.
|
||||
In the countries where moral rights apply, the Licensor waives his right to exercise his moral right to the extent allowed
|
||||
by law in order to make effective the licence of the economic rights here above listed.
|
||||
The Licensor grants to the Licensee royalty-free, non-exclusive usage rights to any patents held by the Licensor, to the
|
||||
extent necessary to make use of the rights granted on the Work under this Licence.
|
||||
|
||||
3.Communication of the Source Code
|
||||
The Licensor may provide the Work either in its Source Code form, or as Executable Code. If the Work is provided as
|
||||
Executable Code, the Licensor provides in addition a machine-readable copy of the Source Code of the Work along with
|
||||
each copy of the Work that the Licensor distributes or indicates, in a notice following the copyright notice attached to
|
||||
the Work, a repository where the Source Code is easily and freely accessible for as long as the Licensor continues to
|
||||
distribute or communicate the Work.
|
||||
|
||||
4.Limitations on copyright
|
||||
Nothing in this Licence is intended to deprive the Licensee of the benefits from any exception or limitation to the
|
||||
exclusive rights of the rights owners in the Work, of the exhaustion of those rights or of other applicable limitations
|
||||
thereto.
|
||||
|
||||
5.Obligations of the Licensee
|
||||
The grant of the rights mentioned above is subject to some restrictions and obligations imposed on the Licensee. Those
|
||||
obligations are the following:
|
||||
|
||||
Attribution right: The Licensee shall keep intact all copyright, patent or trademarks notices and all notices that refer to
|
||||
the Licence and to the disclaimer of warranties. The Licensee must include a copy of such notices and a copy of the
|
||||
Licence with every copy of the Work he/she distributes or communicates. The Licensee must cause any Derivative Work
|
||||
to carry prominent notices stating that the Work has been modified and the date of modification.
|
||||
|
||||
Copyleft clause: If the Licensee distributes or communicates copies of the Original Works or Derivative Works, this
|
||||
Distribution or Communication will be done under the terms of this Licence or of a later version of this Licence unless
|
||||
the Original Work is expressly distributed only under this version of the Licence — for example by communicating
|
||||
‘EUPL v. 1.2 only’. The Licensee (becoming Licensor) cannot offer or impose any additional terms or conditions on the
|
||||
Work or Derivative Work that alter or restrict the terms of the Licence.
|
||||
|
||||
Compatibility clause: If the Licensee Distributes or Communicates Derivative Works or copies thereof based upon both
|
||||
the Work and another work licensed under a Compatible Licence, this Distribution or Communication can be done
|
||||
under the terms of this Compatible Licence. For the sake of this clause, ‘Compatible Licence’ refers to the licences listed
|
||||
in the appendix attached to this Licence. Should the Licensee's obligations under the Compatible Licence conflict with
|
||||
his/her obligations under this Licence, the obligations of the Compatible Licence shall prevail.
|
||||
|
||||
Provision of Source Code: When distributing or communicating copies of the Work, the Licensee will provide
|
||||
a machine-readable copy of the Source Code or indicate a repository where this Source will be easily and freely available
|
||||
for as long as the Licensee continues to distribute or communicate the Work.
|
||||
Legal Protection: This Licence does not grant permission to use the trade names, trademarks, service marks, or names
|
||||
of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and
|
||||
reproducing the content of the copyright notice.
|
||||
|
||||
6.Chain of Authorship
|
||||
The original Licensor warrants that the copyright in the Original Work granted hereunder is owned by him/her or
|
||||
licensed to him/her and that he/she has the power and authority to grant the Licence.
|
||||
Each Contributor warrants that the copyright in the modifications he/she brings to the Work are owned by him/her or
|
||||
licensed to him/her and that he/she has the power and authority to grant the Licence.
|
||||
Each time You accept the Licence, the original Licensor and subsequent Contributors grant You a licence to their contributions
|
||||
to the Work, under the terms of this Licence.
|
||||
|
||||
7.Disclaimer of Warranty
|
||||
The Work is a work in progress, which is continuously improved by numerous Contributors. It is not a finished work
|
||||
and may therefore contain defects or ‘bugs’ inherent to this type of development.
|
||||
For the above reason, the Work is provided under the Licence on an ‘as is’ basis and without warranties of any kind
|
||||
concerning the Work, including without limitation merchantability, fitness for a particular purpose, absence of defects or
|
||||
errors, accuracy, non-infringement of intellectual property rights other than copyright as stated in Article 6 of this
|
||||
Licence.
|
||||
This disclaimer of warranty is an essential part of the Licence and a condition for the grant of any rights to the Work.
|
||||
|
||||
8.Disclaimer of Liability
|
||||
Except in the cases of wilful misconduct or damages directly caused to natural persons, the Licensor will in no event be
|
||||
liable for any direct or indirect, material or moral, damages of any kind, arising out of the Licence or of the use of the
|
||||
Work, including without limitation, damages for loss of goodwill, work stoppage, computer failure or malfunction, loss
|
||||
of data or any commercial damage, even if the Licensor has been advised of the possibility of such damage. However,
|
||||
the Licensor will be liable under statutory product liability laws as far such laws apply to the Work.
|
||||
|
||||
9.Additional agreements
|
||||
While distributing the Work, You may choose to conclude an additional agreement, defining obligations or services
|
||||
consistent with this Licence. However, if accepting obligations, You may act only on your own behalf and on your sole
|
||||
responsibility, not on behalf of the original Licensor or any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against such Contributor by
|
||||
the fact You have accepted any warranty or additional liability.
|
||||
|
||||
10.Acceptance of the Licence
|
||||
The provisions of this Licence can be accepted by clicking on an icon ‘I agree’ placed under the bottom of a window
|
||||
displaying the text of this Licence or by affirming consent in any other similar way, in accordance with the rules of
|
||||
applicable law. Clicking on that icon indicates your clear and irrevocable acceptance of this Licence and all of its terms
|
||||
and conditions.
|
||||
Similarly, you irrevocably accept this Licence and all of its terms and conditions by exercising any rights granted to You
|
||||
by Article 2 of this Licence, such as the use of the Work, the creation by You of a Derivative Work or the Distribution
|
||||
or Communication by You of the Work or copies thereof.
|
||||
|
||||
11.Information to the public
|
||||
In case of any Distribution or Communication of the Work by means of electronic communication by You (for example,
|
||||
by offering to download the Work from a remote location) the distribution channel or media (for example, a website)
|
||||
must at least provide to the public the information requested by the applicable law regarding the Licensor, the Licence
|
||||
and the way it may be accessible, concluded, stored and reproduced by the Licensee.
|
||||
|
||||
12.Termination of the Licence
|
||||
The Licence and the rights granted hereunder will terminate automatically upon any breach by the Licensee of the terms
|
||||
of the Licence.
|
||||
Such a termination will not terminate the licences of any person who has received the Work from the Licensee under
|
||||
the Licence, provided such persons remain in full compliance with the Licence.
|
||||
|
||||
13.Miscellaneous
|
||||
Without prejudice of Article 9 above, the Licence represents the complete agreement between the Parties as to the
|
||||
Work.
|
||||
If any provision of the Licence is invalid or unenforceable under applicable law, this will not affect the validity or
|
||||
enforceability of the Licence as a whole. Such provision will be construed or reformed so as necessary to make it valid
|
||||
and enforceable.
|
||||
The European Commission may publish other linguistic versions or new versions of this Licence or updated versions of
|
||||
the Appendix, so far this is required and reasonable, without reducing the scope of the rights granted by the Licence.
|
||||
New versions of the Licence will be published with a unique version number.
|
||||
All linguistic versions of this Licence, approved by the European Commission, have identical value. Parties can take
|
||||
advantage of the linguistic version of their choice.
|
||||
|
||||
14.Jurisdiction
|
||||
Without prejudice to specific agreement between parties,
|
||||
— any litigation resulting from the interpretation of this License, arising between the European Union institutions,
|
||||
bodies, offices or agencies, as a Licensor, and any Licensee, will be subject to the jurisdiction of the Court of Justice
|
||||
of the European Union, as laid down in article 272 of the Treaty on the Functioning of the European Union,
|
||||
— any litigation arising between other parties and resulting from the interpretation of this License, will be subject to
|
||||
the exclusive jurisdiction of the competent court where the Licensor resides or conducts its primary business.
|
||||
|
||||
15.Applicable Law
|
||||
Without prejudice to specific agreement between parties,
|
||||
— this Licence shall be governed by the law of the European Union Member State where the Licensor has his seat,
|
||||
resides or has his registered office,
|
||||
— this licence shall be governed by Belgian law if the Licensor has no seat, residence or registered office inside
|
||||
a European Union Member State.
|
||||
|
||||
|
||||
Appendix
|
||||
|
||||
‘Compatible Licences’ according to Article 5 EUPL are:
|
||||
— GNU General Public License (GPL) v. 2, v. 3
|
||||
— GNU Affero General Public License (AGPL) v. 3
|
||||
— Open Software License (OSL) v. 2.1, v. 3.0
|
||||
— Eclipse Public License (EPL) v. 1.0
|
||||
— CeCILL v. 2.0, v. 2.1
|
||||
— Mozilla Public Licence (MPL) v. 2
|
||||
— GNU Lesser General Public Licence (LGPL) v. 2.1, v. 3
|
||||
— Creative Commons Attribution-ShareAlike v. 3.0 Unported (CC BY-SA 3.0) for works other than software
|
||||
— European Union Public Licence (EUPL) v. 1.1, v. 1.2
|
||||
— Québec Free and Open-Source Licence — Reciprocity (LiLiQ-R) or Strong Reciprocity (LiLiQ-R+)
|
||||
|
||||
The European Commission may update this Appendix to later versions of the above licences without producing
|
||||
a new version of the EUPL, as long as they provide the rights granted in Article 2 of this Licence and protect the
|
||||
covered Source Code from exclusive appropriation.
|
||||
All other changes or additions to this Appendix require the production of a new EUPL version.
|
||||
|
29
README.md
Normal file
@ -0,0 +1,29 @@
|
||||
### MOBS SKELETONS
|
||||
![Mob Skeletons' screenshot](screenshot.png)
|
||||
**_Adds skeletons._**
|
||||
|
||||
**Version:** 0.1.0
|
||||
**Source code's license:** [EUPL v1.2][1] or later.
|
||||
**Multimedia files' license:** see subfolders.
|
||||
|
||||
**Dependencies:** default (found in [Minetest Game][2], mobs ([Mobs Redo][3])
|
||||
|
||||
|
||||
### Installation
|
||||
|
||||
Unzip the archive, rename the folder to mobs_skeletons and place it in
|
||||
../minetest/mods/
|
||||
|
||||
If you only want this to be used in a single world, place it in
|
||||
../minetest/worlds/WORLD_NAME/worldmods/
|
||||
|
||||
GNU+Linux - If you use a system-wide installation place it in
|
||||
~/.minetest/mods/
|
||||
|
||||
For further information or help see:
|
||||
https://wiki.minetest.net/Help:Installing_Mods
|
||||
|
||||
|
||||
[1]: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
[2]: https://github.com/minetest/minetest_game
|
||||
[3]: https://forum.minetest.net/viewtopic.php?t=9917
|
55
core/functions.lua
Normal file
@ -0,0 +1,55 @@
|
||||
--[[
|
||||
|
||||
Mobs Skeletons - Adds skeletons.
|
||||
Copyright © 2021 Hamlet and contributors.
|
||||
|
||||
Licensed under the EUPL, Version 1.2 or – as soon they will be
|
||||
approved by the European Commission – subsequent versions of the
|
||||
EUPL (the "Licence");
|
||||
You may not use this work except in compliance with the Licence.
|
||||
You may obtain a copy of the Licence at:
|
||||
|
||||
https://joinup.ec.europa.eu/software/page/eupl
|
||||
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the Licence is distributed on an
|
||||
"AS IS" basis,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
See the Licence for the specific language governing permissions
|
||||
and limitations under the Licence.
|
||||
|
||||
--]]
|
||||
|
||||
|
||||
--
|
||||
-- Functions
|
||||
--
|
||||
|
||||
-- Used to calculate the damage per second
|
||||
mobs_skeletons.fn_DamagePerSecond = function(self)
|
||||
|
||||
-- Constants
|
||||
local i_SECONDS_PER_DAY = 86400
|
||||
local i_SECONDS_PER_5_MINUTES = 300
|
||||
|
||||
-- Variables
|
||||
local i_hitPoints, i_timeSpeed, i_inGameDayLength, i_fiveInGameMinutes,
|
||||
i_damagePerSecond
|
||||
|
||||
i_hitPoints = self.health
|
||||
i_timeSpeed = tonumber(minetest.settings:get('i_timeSpeed')) or 72
|
||||
|
||||
if (i_timeSpeed == 0) then
|
||||
i_timeSpeed = 1
|
||||
end
|
||||
|
||||
i_inGameDayLength = i_SECONDS_PER_DAY / i_timeSpeed
|
||||
i_fiveInGameMinutes = (i_inGameDayLength * i_SECONDS_PER_5_MINUTES)
|
||||
/ i_SECONDS_PER_DAY
|
||||
|
||||
i_damagePerSecond = i_hitPoints / i_fiveInGameMinutes
|
||||
|
||||
return i_damagePerSecond
|
||||
end
|
58
core/projectile.lua
Normal file
@ -0,0 +1,58 @@
|
||||
--[[
|
||||
|
||||
Mobs Skeletons - Adds skeletons.
|
||||
Copyright © 2021 Hamlet and contributors.
|
||||
|
||||
Licensed under the EUPL, Version 1.2 or – as soon they will be
|
||||
approved by the European Commission – subsequent versions of the
|
||||
EUPL (the "Licence");
|
||||
You may not use this work except in compliance with the Licence.
|
||||
You may obtain a copy of the Licence at:
|
||||
|
||||
https://joinup.ec.europa.eu/software/page/eupl
|
||||
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the Licence is distributed on an
|
||||
"AS IS" basis,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
See the Licence for the specific language governing permissions
|
||||
and limitations under the Licence.
|
||||
|
||||
--]]
|
||||
|
||||
|
||||
--
|
||||
-- Arrow
|
||||
--
|
||||
|
||||
mobs:register_arrow('mobs_skeletons:arrow', {
|
||||
visual = 'sprite',
|
||||
visual_size = {x = 1, y = 1},
|
||||
textures = {'mobs_skeletons_arrow.png'},
|
||||
velocity = 35,
|
||||
drop = false,
|
||||
|
||||
hit_player = function(self, player)
|
||||
local pos = self.object:get_pos()
|
||||
local damage = 6
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = damage},
|
||||
}, nil)
|
||||
end,
|
||||
|
||||
hit_mob = function(self, player)
|
||||
local pos = self.object:get_pos()
|
||||
local damage = 6
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval = 1.0,
|
||||
damage_groups = {fleshy = damage},
|
||||
}, nil)
|
||||
end,
|
||||
|
||||
hit_node = function(self, pos, node)
|
||||
self.object:remove()
|
||||
end
|
||||
})
|
103
core/skeleton.lua
Normal file
@ -0,0 +1,103 @@
|
||||
--[[
|
||||
|
||||
Mobs Skeletons - Adds skeletons.
|
||||
Copyright © 2021 Hamlet and contributors.
|
||||
|
||||
Licensed under the EUPL, Version 1.2 or – as soon they will be
|
||||
approved by the European Commission – subsequent versions of the
|
||||
EUPL (the "Licence");
|
||||
You may not use this work except in compliance with the Licence.
|
||||
You may obtain a copy of the Licence at:
|
||||
|
||||
https://joinup.ec.europa.eu/software/page/eupl
|
||||
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the Licence is distributed on an
|
||||
"AS IS" basis,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
See the Licence for the specific language governing permissions
|
||||
and limitations under the Licence.
|
||||
|
||||
--]]
|
||||
|
||||
|
||||
--
|
||||
-- Skeleton entity
|
||||
--
|
||||
|
||||
mobs:register_mob('mobs_skeletons:skeleton', {
|
||||
--nametag = 'Skeleton',
|
||||
type = 'monster',
|
||||
hp_min = (minetest.PLAYER_MAX_HP_DEFAULT - 10),
|
||||
hp_max = (minetest.PLAYER_MAX_HP_DEFAULT + 10),
|
||||
walk_velocity = 4,
|
||||
run_velocity = 5.2,
|
||||
stand_chance = 50,
|
||||
walk_chance = 50,
|
||||
jump = true,
|
||||
jump_height = 1.1,
|
||||
stepheight = 1.1,
|
||||
pushable = true,
|
||||
view_range = 16,
|
||||
damage = 7,
|
||||
knock_back = true,
|
||||
fear_height = 6,
|
||||
fall_damage = true,
|
||||
lava_damage = 9999,
|
||||
light_damage = 1,
|
||||
light_damage_min = (default.LIGHT_MAX - 1),
|
||||
light_damage_max = default.LIGHT_MAX,
|
||||
suffocation = 0,
|
||||
floats = 0,
|
||||
reach = 4,
|
||||
attack_chance = 1,
|
||||
attack_animals = true,
|
||||
attack_npcs = true,
|
||||
attack_players = true,
|
||||
group_attack = true,
|
||||
attack_type = 'dogfight',
|
||||
blood_amount = 0,
|
||||
pathfinding = 1,
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = 'mobs_skeletons_skeleton_random',
|
||||
attack = 'mobs_skeletons_slash_attack',
|
||||
damage = 'mobs_skeletons_skeleton_hurt',
|
||||
death = 'mobs_skeletons_skeleton_death'
|
||||
},
|
||||
visual = 'mesh',
|
||||
visual_size = {x = 2.7, y = 2.7},
|
||||
collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
||||
selectionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
||||
textures = {
|
||||
'default_tool_steelsword.png',
|
||||
'mobs_skeletons_skeleton.png'
|
||||
},
|
||||
mesh = 'mobs_skeletons_skeleton.b3d',
|
||||
animation = {
|
||||
stand_start = 0,
|
||||
stand_end = 40,
|
||||
stand_speed = 15,
|
||||
walk_start = 40,
|
||||
walk_end = 60,
|
||||
walk_speed = 15,
|
||||
run_start = 40,
|
||||
run_end = 60,
|
||||
run_speed = 30,
|
||||
shoot_start = 70,
|
||||
shoot_end = 90,
|
||||
punch_start = 110,
|
||||
punch_end = 130,
|
||||
punch_speed = 25,
|
||||
die_start = 160,
|
||||
die_end = 170,
|
||||
die_speed = 15,
|
||||
die_loop = false,
|
||||
},
|
||||
|
||||
on_spawn = function(self)
|
||||
self.light_damage = mobs_skeletons.fn_DamagePerSecond(self)
|
||||
end
|
||||
})
|
101
core/skeleton_archer.lua
Normal file
@ -0,0 +1,101 @@
|
||||
--[[
|
||||
|
||||
Mobs Skeletons - Adds skeletons.
|
||||
Copyright © 2021 Hamlet and contributors.
|
||||
|
||||
Licensed under the EUPL, Version 1.2 or – as soon they will be
|
||||
approved by the European Commission – subsequent versions of the
|
||||
EUPL (the "Licence");
|
||||
You may not use this work except in compliance with the Licence.
|
||||
You may obtain a copy of the Licence at:
|
||||
|
||||
https://joinup.ec.europa.eu/software/page/eupl
|
||||
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the Licence is distributed on an
|
||||
"AS IS" basis,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
See the Licence for the specific language governing permissions
|
||||
and limitations under the Licence.
|
||||
|
||||
--]]
|
||||
|
||||
|
||||
--
|
||||
-- Skeleton archer entity
|
||||
--
|
||||
|
||||
mobs:register_mob('mobs_skeletons:skeleton_archer', {
|
||||
--nametag = 'Skeleton Archer',
|
||||
type = 'monster',
|
||||
hp_min = (minetest.PLAYER_MAX_HP_DEFAULT - 10),
|
||||
hp_max = (minetest.PLAYER_MAX_HP_DEFAULT + 10),
|
||||
walk_velocity = 4,
|
||||
run_velocity = 5.2,
|
||||
stand_chance = 50,
|
||||
walk_chance = 50,
|
||||
jump = true,
|
||||
jump_height = 1.1,
|
||||
stepheight = 1.1,
|
||||
pushable = true,
|
||||
view_range = 16,
|
||||
damage = 2,
|
||||
knock_back = true,
|
||||
fear_height = 6,
|
||||
fall_damage = true,
|
||||
lava_damage = 9999,
|
||||
light_damage = 1,
|
||||
light_damage_min = (default.LIGHT_MAX - 1),
|
||||
light_damage_max = default.LIGHT_MAX,
|
||||
suffocation = 0,
|
||||
floats = 0,
|
||||
reach = 4,
|
||||
attack_chance = 1,
|
||||
attack_animals = true,
|
||||
attack_npcs = true,
|
||||
attack_players = true,
|
||||
group_attack = true,
|
||||
attack_type = 'shoot',
|
||||
arrow = 'mobs_skeletons:arrow',
|
||||
shoot_interval = 1.5,
|
||||
shoot_offset = 1.0,
|
||||
blood_amount = 0,
|
||||
pathfinding = 1,
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = 'mobs_skeletons_skeleton_random',
|
||||
shoot_attack = 'mobs_skeletons_shoot',
|
||||
damage = 'mobs_skeletons_skeleton_hurt',
|
||||
death = 'mobs_skeletons_skeleton_death'
|
||||
},
|
||||
visual = 'mesh',
|
||||
visual_size = {x = 2.7, y = 2.7},
|
||||
collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
||||
selectionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
||||
textures = {
|
||||
'mobs_skeleton_bow.png',
|
||||
'mobs_skeletons_skeleton_archer.png'
|
||||
},
|
||||
mesh = 'mobs_skeletons_skeleton_archer.b3d',
|
||||
animation = {
|
||||
stand_speed = 15,
|
||||
stand_start = 0,
|
||||
stand_end = 40,
|
||||
walk_speed = 15,
|
||||
walk_start = 40,
|
||||
walk_end = 60,
|
||||
run_speed = 30,
|
||||
shoot_start = 70,
|
||||
shoot_end = 90,
|
||||
die_start = 160,
|
||||
die_end = 170,
|
||||
die_speed = 15,
|
||||
die_loop = false,
|
||||
},
|
||||
|
||||
on_spawn = function(self)
|
||||
self.light_damage = mobs_skeletons.fn_DamagePerSecond(self)
|
||||
end
|
||||
})
|
102
core/skeleton_archer_dark.lua
Normal file
@ -0,0 +1,102 @@
|
||||
--[[
|
||||
|
||||
Mobs Skeletons - Adds skeletons.
|
||||
Copyright © 2021 Hamlet and contributors.
|
||||
|
||||
Licensed under the EUPL, Version 1.2 or – as soon they will be
|
||||
approved by the European Commission – subsequent versions of the
|
||||
EUPL (the "Licence");
|
||||
You may not use this work except in compliance with the Licence.
|
||||
You may obtain a copy of the Licence at:
|
||||
|
||||
https://joinup.ec.europa.eu/software/page/eupl
|
||||
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the Licence is distributed on an
|
||||
"AS IS" basis,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
See the Licence for the specific language governing permissions
|
||||
and limitations under the Licence.
|
||||
|
||||
--]]
|
||||
|
||||
|
||||
--
|
||||
-- Skeleton archer entity
|
||||
--
|
||||
|
||||
mobs:register_mob('mobs_skeletons:skeleton_archer_dark', {
|
||||
--nametag = 'Dark Skeleton Archer',
|
||||
type = 'monster',
|
||||
hp_min = (minetest.PLAYER_MAX_HP_DEFAULT - 10),
|
||||
hp_max = (minetest.PLAYER_MAX_HP_DEFAULT + 10),
|
||||
walk_velocity = 4,
|
||||
run_velocity = 5.2,
|
||||
stand_chance = 50,
|
||||
walk_chance = 50,
|
||||
jump = true,
|
||||
jump_height = 1.1,
|
||||
stepheight = 1.1,
|
||||
pushable = true,
|
||||
view_range = 16,
|
||||
damage = 2,
|
||||
knock_back = true,
|
||||
fear_height = 6,
|
||||
fall_damage = true,
|
||||
lava_damage = 9999,
|
||||
light_damage = 1,
|
||||
light_damage_min = (default.LIGHT_MAX - 1),
|
||||
light_damage_max = default.LIGHT_MAX,
|
||||
suffocation = 0,
|
||||
floats = 0,
|
||||
reach = 4,
|
||||
attack_chance = 1,
|
||||
attack_animals = true,
|
||||
attack_npcs = true,
|
||||
attack_players = true,
|
||||
group_attack = true,
|
||||
attack_type = 'shoot',
|
||||
arrow = 'mobs_skeletons:arrow',
|
||||
shoot_interval = 1.5,
|
||||
shoot_offset = 1.0,
|
||||
blood_amount = 0,
|
||||
pathfinding = 1,
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = 'mobs_skeletons_skeleton_random',
|
||||
shoot_attack = 'mobs_skeletons_shoot',
|
||||
damage = 'mobs_skeletons_skeleton_hurt',
|
||||
death = 'mobs_skeletons_skeleton_death'
|
||||
},
|
||||
visual = 'mesh',
|
||||
visual_size = {x = 2.7, y = 2.7},
|
||||
collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
||||
selectionbox = {-0.3, 0.0, -0.3, 0.3, 1.7, 0.3},
|
||||
textures = {
|
||||
'mobs_skeleton_bow.png',
|
||||
'mobs_skeletons_skeleton_archer_dark.png',
|
||||
'mobs_skeletons_skeleton_archer_dark_overlay.png'
|
||||
},
|
||||
mesh = 'mobs_skeletons_skeleton_archer_dark.b3d',
|
||||
animation = {
|
||||
stand_speed = 15,
|
||||
stand_start = 0,
|
||||
stand_end = 40,
|
||||
walk_speed = 15,
|
||||
walk_start = 40,
|
||||
walk_end = 60,
|
||||
run_speed = 30,
|
||||
shoot_start = 70,
|
||||
shoot_end = 90,
|
||||
die_start = 160,
|
||||
die_end = 170,
|
||||
die_speed = 15,
|
||||
die_loop = false,
|
||||
},
|
||||
|
||||
on_spawn = function(self)
|
||||
self.light_damage = mobs_skeletons.fn_DamagePerSecond(self)
|
||||
end
|
||||
})
|
98
core/spawning.lua
Normal file
@ -0,0 +1,98 @@
|
||||
--[[
|
||||
|
||||
Mobs Skeletons - Adds skeletons.
|
||||
Copyright © 2021 Hamlet and contributors.
|
||||
|
||||
Licensed under the EUPL, Version 1.2 or – as soon they will be
|
||||
approved by the European Commission – subsequent versions of the
|
||||
EUPL (the "Licence");
|
||||
You may not use this work except in compliance with the Licence.
|
||||
You may obtain a copy of the Licence at:
|
||||
|
||||
https://joinup.ec.europa.eu/software/page/eupl
|
||||
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the Licence is distributed on an
|
||||
"AS IS" basis,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
See the Licence for the specific language governing permissions
|
||||
and limitations under the Licence.
|
||||
|
||||
--]]
|
||||
|
||||
|
||||
--
|
||||
-- Constant
|
||||
--
|
||||
|
||||
-- Used for localization
|
||||
local S = minetest.get_translator('mobs_skeletons')
|
||||
|
||||
|
||||
--
|
||||
-- Skeletons spawning
|
||||
--
|
||||
|
||||
mobs:spawn({name = 'mobs_skeletons:skeleton',
|
||||
nodes = {
|
||||
'group:crumbly',
|
||||
'group:cracky'
|
||||
},
|
||||
neighbors = 'air',
|
||||
chance = 7000,
|
||||
active_object_count = 2,
|
||||
min_height = -31000,
|
||||
max_height = 31000,
|
||||
day_toggle = false
|
||||
})
|
||||
|
||||
mobs:spawn({name = 'mobs_skeletons:skeleton_archer',
|
||||
nodes = {
|
||||
'group:crumbly',
|
||||
'group:cracky'
|
||||
},
|
||||
neighbors = 'air',
|
||||
chance = 7000,
|
||||
active_object_count = 2,
|
||||
min_height = -31000,
|
||||
max_height = 31000,
|
||||
day_toggle = false
|
||||
})
|
||||
|
||||
mobs:spawn({name = 'mobs_skeletons:skeleton_archer_dark',
|
||||
nodes = {
|
||||
'group:crumbly',
|
||||
'group:cracky'
|
||||
},
|
||||
neighbors = 'air',
|
||||
chance = 7000,
|
||||
active_object_count = 2,
|
||||
min_height = -31000,
|
||||
max_height = 31000,
|
||||
day_toggle = false
|
||||
})
|
||||
|
||||
|
||||
--
|
||||
-- Spawn Eggs
|
||||
--
|
||||
|
||||
mobs:register_egg('mobs_skeletons:skeleton', S('Skeleton'), 'default_grass.png')
|
||||
|
||||
mobs:register_egg('mobs_skeletons:skeleton_archer', S('Skeleton Archer'),
|
||||
'default_grass.png')
|
||||
|
||||
mobs:register_egg('mobs_skeletons:skeleton_archer_dark',
|
||||
S('Dark Skeleton Archer'), 'default_grass.png')
|
||||
|
||||
|
||||
--
|
||||
-- Aliases
|
||||
--
|
||||
|
||||
mobs:alias_mob('mobs:skeleton', 'mobs_skeletons:skeleton')
|
||||
mobs:alias_mob('mobs:skeleton_archer', 'mobs_skeletons:skeleton_archer')
|
||||
mobs:alias_mob('mobs:dark_skeleton_archer',
|
||||
'mobs_skeletons:skeleton_archer_dark')
|
73
init.lua
Normal file
@ -0,0 +1,73 @@
|
||||
--[[
|
||||
|
||||
Mobs Skeletons - Adds skeletons.
|
||||
Copyright © 2021 Hamlet and contributors.
|
||||
|
||||
Licensed under the EUPL, Version 1.2 or – as soon they will be
|
||||
approved by the European Commission – subsequent versions of the
|
||||
EUPL (the "Licence");
|
||||
You may not use this work except in compliance with the Licence.
|
||||
You may obtain a copy of the Licence at:
|
||||
|
||||
https://joinup.ec.europa.eu/software/page/eupl
|
||||
https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32017D0863
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the Licence is distributed on an
|
||||
"AS IS" basis,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied.
|
||||
See the Licence for the specific language governing permissions
|
||||
and limitations under the Licence.
|
||||
|
||||
--]]
|
||||
|
||||
|
||||
-- Global mod's namespace
|
||||
mobs_skeletons = {}
|
||||
|
||||
|
||||
--
|
||||
-- Procedures
|
||||
--
|
||||
|
||||
-- Minetest logger
|
||||
local pr_LogMessage = function()
|
||||
|
||||
-- Constant
|
||||
local s_LOG_LEVEL = minetest.settings:get('debug_log_level')
|
||||
|
||||
-- Body
|
||||
if (s_LOG_LEVEL == nil)
|
||||
or (s_LOG_LEVEL == 'action')
|
||||
or (s_LOG_LEVEL == 'info')
|
||||
or (s_LOG_LEVEL == 'verbose')
|
||||
then
|
||||
minetest.log('action', '[Mod] Mobs Skeletons [v0.1.0] loaded.')
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Subfiles loader
|
||||
local pr_LoadSubFiles = function()
|
||||
|
||||
-- Constant
|
||||
local s_MOD_PATH = minetest.get_modpath('mobs_skeletons')
|
||||
|
||||
-- Body
|
||||
dofile(s_MOD_PATH .. '/core/functions.lua')
|
||||
dofile(s_MOD_PATH .. '/core/projectile.lua')
|
||||
dofile(s_MOD_PATH .. '/core/skeleton.lua')
|
||||
dofile(s_MOD_PATH .. '/core/skeleton_archer.lua')
|
||||
dofile(s_MOD_PATH .. '/core/skeleton_archer_dark.lua')
|
||||
dofile(s_MOD_PATH .. '/core/spawning.lua')
|
||||
|
||||
end
|
||||
|
||||
|
||||
--
|
||||
-- Main body
|
||||
--
|
||||
|
||||
pr_LoadSubFiles()
|
||||
pr_LogMessage()
|
5
locale/mobs_skeletons.it.tr
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain:mobs_skeletons
|
||||
|
||||
Skeleton=Scheletro
|
||||
Skeleton Archer=Scheletro arciere
|
||||
Dark Skeleton Archer=Scheletro arciere oscuro
|
5
locale/template.txt
Normal file
@ -0,0 +1,5 @@
|
||||
# textdomain:mobs_skeletons
|
||||
|
||||
Skeleton=
|
||||
Skeleton Archer=
|
||||
Dark Skeleton Archer=
|
3
mod.conf
Normal file
@ -0,0 +1,3 @@
|
||||
name = mobs_skeletons
|
||||
description = Adds skeletons.
|
||||
depends = default, mobs
|
6
models/LICENSE.md
Normal file
@ -0,0 +1,6 @@
|
||||
* [22i] (https://github.com/22i)
|
||||
* `skeleton+skeleton_stray+wither_skeleton.blend` (GPL v3.0)
|
||||
* `mobs_skeletons_skeleton.b3d` (GPL v3.0)
|
||||
* `mobs_skeletons_skeleton_archer.b3d` (GPL v3.0)
|
||||
* `mobs_skeletons_skeleton_archer_dark.b3d` (GPL v3.0)
|
||||
* Source: <https://github.com/22i/minecraft-voxel-blender-models>
|
BIN
models/mobs_skeletons_skeleton.b3d
Executable file
BIN
models/mobs_skeletons_skeleton_archer.b3d
Executable file
BIN
models/mobs_skeletons_skeleton_archer_dark.b3d
Executable file
BIN
models/skeleton+skeleton_stray+wither_skeleton.blend
Normal file
BIN
screenshot.png
Normal file
After Width: | Height: | Size: 48 KiB |
17
sounds/LICENSE.md
Normal file
@ -0,0 +1,17 @@
|
||||
* [BrandonReese](https://forum.minetest.net/memberlist.php?mode=viewprofile&un=BrandonReese)
|
||||
* `mobs_skeletons_slash_attack.ogg` (LGPL v2.1)
|
||||
|
||||
* [Baŝto](https://opengameart.org/users/ba%C5%9Dto)
|
||||
* `mobs_skeletons_skeleton_random.*.ogg` (CC BY 3.0)
|
||||
* Source: <https://opengameart.org/content/walking-skeleton>
|
||||
|
||||
* [spookymodem](https://freesound.org/people/spookymodem/)
|
||||
* `mobs_skeletons_skeleton_death.ogg` (CC0)
|
||||
* <https://freesound.org/people/spookymodem/sounds/202091/>
|
||||
|
||||
* [Cribbler](https://freesound.org/people/Cribbler/)
|
||||
* `mobs_skeletons_skeleton_hurt.ogg` (CC0)
|
||||
* Source: <https://freesound.org/people/Cribbler/sounds/381859/>
|
||||
|
||||
* [Stujones](https://github.com/stujones11/shooter)
|
||||
* `mobs_skeletons_shoot.png` (CC BY 3.0)
|
BIN
sounds/mobs_skeletons_shoot.ogg
Executable file
BIN
sounds/mobs_skeletons_skeleton_death.ogg
Executable file
BIN
sounds/mobs_skeletons_skeleton_hurt.ogg
Executable file
BIN
sounds/mobs_skeletons_skeleton_random.1.ogg
Executable file
BIN
sounds/mobs_skeletons_skeleton_random.2.ogg
Executable file
BIN
sounds/mobs_skeletons_slash_attack.ogg
Executable file
9
textures/LICENSE.md
Normal file
@ -0,0 +1,9 @@
|
||||
* [kingoscargames] (https://forum.minetest.net/memberlist.php?mode=viewprofile&u=21654)
|
||||
* `mobs_skeletons_skeleton.png`(CC BY-SA 4.0)
|
||||
|
||||
* [MysticTempest] (https://forum.minetest.net/memberlist.php?mode=viewprofile&un=MysticTempest)
|
||||
* `mobs_skeletons_skeleton_archer.png` (CC BY-SA 4.0)
|
||||
|
||||
* [XSSheep](https://www.planetminecraft.com/member/xssheep/)
|
||||
* `mobs_skeletons_skeleton_archer_dark.png` (MIT)
|
||||
* `mobs_skeletons_skeleton_archer_dark_overlay.png` (MIT)
|
BIN
textures/mobs_skeleton_bow.png
Normal file
After Width: | Height: | Size: 219 B |
BIN
textures/mobs_skeletons_arrow.png
Normal file
After Width: | Height: | Size: 237 B |
BIN
textures/mobs_skeletons_skeleton.png
Normal file
After Width: | Height: | Size: 444 B |
BIN
textures/mobs_skeletons_skeleton_archer.png
Executable file
After Width: | Height: | Size: 432 B |
BIN
textures/mobs_skeletons_skeleton_archer_dark.png
Normal file
After Width: | Height: | Size: 468 B |
BIN
textures/mobs_skeletons_skeleton_archer_dark_overlay.png
Normal file
After Width: | Height: | Size: 481 B |