Skip to content

Instantly share code, notes, and snippets.

@MonkeyIsNull
Created October 1, 2013 00:11
Show Gist options
  • Save MonkeyIsNull/6772168 to your computer and use it in GitHub Desktop.
Save MonkeyIsNull/6772168 to your computer and use it in GitHub Desktop.
Harn Master Skills setup in Prolog
% str(ulf, 19).
% intell(ulf, 12).
% dex(ulf, 10).
%str(gar, 12).
%intell(gar, 18).
%dex(gar, 13).
% calc_stats(X,N):-
% str(X,Y),
% dex(X,V),
% intell(X,Z),
% N is Y+V+Z.
%% Start of the real stuff
upper_strength(cel, 17).
lower_strength(cel, 14).
structural_stamina(cel, 15).
internal_endurance(cel, 19).
dexterity(cel, 14).
agility(cel, 14).
speed(cel, 13).
eyesight(cel, 11).
hearing(cel, 11).
smell_taste(cel, 11).
touch(cel, 12).
voice(cel, 14).
intelligence(cel, 16).
aura(cel, 16).
will(cel, 16).
morality(cel, 16).
memory(cel, 16).
comeliness(cel, 16).
%Shorthand -- need to complete these
us(X,Y):- upper_strength(X,Y).
unarmed_skill(X, Oml, Skill):-
upper_strength(X,Us),
lower_strength(X,Ls),
dexterity(X,Dex),
agility(X, Agl),
Oml is round((Us + Ls + Dex + Agl)/4),
Skill is Oml * 3.
riding_skill(X, Oml, Skill):-
dexterity(X, Dx),
agility(X, Agl),
will(X, Wi),
Oml is round((Dx + Agl + Wi)/3),
Skill is Oml * 2.
broadsword_oml(X, Oml):-
upper_strength(X, Us),
dexterity(X, Dx),
Oml is round((Us + Us + Dx)/3).
broadsword_skill(X, Skill):-
broadsword_oml(X, Oml),
Skill is Oml * 3.
broadsword_oml_skill(X, Oml, Skill):-
broadsword_oml(X, Oml),
Oml is Oml,
broadsword_skill(X, Skill),
Skill is Skill.
% Base functions for calculating skills
% TODO: Learn how to Meta these up!
us_ls_dx_ag(X, BaseOpen, Oml, Skill):-
upper_strength(X, Us),
lower_strength(X, Ls),
dexterity(X, Dx),
agility(X, Ag),
Oml is round((Us + Ls + Dx + Ag)/4),
Skill is Oml * BaseOpen.
ls_sp_ag(X, BaseOpen, Oml, Skill):-
lower_strength(X, Us),
speed(X, Sp),
agility(X, Ag),
Oml is round((Us + Sp + Ag)/3),
Skill is Oml * BaseOpen.
ag_tc_wi(X, BaseOpen, Oml, Skill):-
agility(X, Ag),
touch(X, Tc),
will(X, Wi),
Oml is round((Ag + Tc + Wi)/3),
Skill is Oml * BaseOpen.
% Automatic skills - terse style
climbing(X, Oml, Skill):-
us_ls_dx_ag(X, 4, Oml, Skill).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment