File: Script.c

package info (click to toggle)
openclonk 8.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 169,500 kB
  • sloc: cpp: 180,478; ansic: 108,988; xml: 31,371; python: 1,223; php: 767; makefile: 139; sh: 101; javascript: 34
file content (61 lines) | stat: -rw-r--r-- 1,428 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/**
	Gravestone
	Epitaph for the dead.
	
	@author Ringwaul
*/


local grave_inscription;

// Definition call: Get death message for clonk
public func GetInscriptionForClonk(object dead)
{
	var msg = dead->GetObjCoreDeathMessage();
	if (!msg) msg = dead.SpecialDeathMessage;
	// Set grave inscription dependent on whether there is a death message.
	if (msg && GetLength(msg))
		msg = Format("$Epitaph$ %s.|\"%s\"", dead->GetName(), msg);
	else 
		msg = Format("$Epitaph$ %s.", dead->GetName());
	return msg;
}

// Set the inscription for a dead clonk.
public func SetInscription(object dead)
{
	grave_inscription = GetInscriptionForClonk(dead);
	return true;
}

// Set the inscription message directly.
public func SetInscriptionMessage(message)
{
	grave_inscription = message;
	return true;
}
 
public func IsInteractable() { return true; }

public func GetInteractionMetaInfo(object clonk)
{
	return { Description = "$ReadInscription$" };
}

public func Interact(object clonk)
{
	return PlayerMessage(clonk->GetController(), GetTranslatedString(grave_inscription));
}

public func Definition(def)
{
	if (!def.EditorProps) def.EditorProps = {};
	def.EditorProps.grave_inscription = { Name="$Inscription$", Type="string", EditorHelp="$InscriptionHelp$", Set="SetInscriptionMessage", Save="Inscription", Translatable=true };
}


/*-- Properties --*/

local Name = "$Name$";
local Description = "$Description$";
local Plane = 300;